Submission #2840952


Source Code Expand

/*
for (int i = 0; i < N; ++i){}

// 各桁の和を計算する関数
int findSumOfDigits(int n) {
  int sum = 0;
  while (n > 0) { // n が 0 になるまで
    sum += n % 10;
    n /= 10;
  }
  return sum;
}

sort(a, a + N, greater<int>());  // a[0:N] を大きい順にソート

int num[110] = {0};  // バケット
for (int i = 0; i < N; ++i) {
    num[d[i]]++;  // d[i] が 1 個増える
}

map<string, int> mp; // 連想配列 map<キー型, 値型> オブジェクト名
for (int i = 0; i < N; ++i) {
    auto itr = mp.find(s[i]);        // s[i] が設定されているか?
    if(itr != mp.end() ) {
         mp[s[i]] += 1;
    }
    else {
         mp[s[i]] += 1 ;
    }
}
stack<int> s;	//intをデータとするスタックを用意
s.push(1);		//{} -> {1}
printf("%d\n", s.top());	// 3
s.pop();

queue<int> que;	//intをデータとするキューを用意
que.push(1);		//{} -> {1}
printf("%d\n", que.front());	// 1
que.pop();
*/
#include <iostream>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <bitset>
#include <numeric>

using namespace std;

// #define for(i,a,b) for (int i=(a);i<(b);++i)
typedef long long ll;
typedef pair<int,int> point;
#define rep(i,n) for(i,0,n)



bool judge(vector<int> v){
	bool ans = true;
	sort(v.begin(), v.end());
	for (int i = 0; i < v.size()-1; ++i) {
		if (v[i]==v[i+1]) return false;
	}
	int sum = 0;
	for (int x : v) sum += x;
	
	for (int i = 0; i < v.size(); ++i) {
		int ai = v[i];
		int sumi = sum - ai;
		int gcdi = __gcd(ai, sumi);
		if (gcdi==1) return false;
	}
	int gcd_all = __gcd(v[0], v[1]);
	for (int x : v) gcd_all = __gcd(gcd_all, x);
	if (gcd_all!=1) ans = false;
	

	
	return ans;
}


int main() {
	// 入力
	int N;
	cin >> N;
 
	// 解法
	vector<int> v;
	if (N==3) v = {2,5,63};
	else if (N==4) v = {2,5,20, 63};
	else if (N==5) v = {2,5,20, 30, 63};
	else{
		int k, i;
		for (i = 0; i < N; ++i) {
			k = i/4;
			if (i%4==0) v.push_back(6*k+2);
			else if (i%4==1) v.push_back(6*k+3);
			else if (i%4==2) v.push_back(6*k+4);
			else if (i%4==3) v.push_back(6*k+6);
		}
		int sum = 0;
		for (int x : v) sum += x;
		// cout << sum << endl;
		if (sum%6==2) v[4] = 6*(v.end()/6+1);
		if (sum%6==3) v[5] = 6*(v.end()/6+1);
		if (sum%6==5) v[5] = 6*(v.end()/6+1)+4;
	}
	
	//出力
	for (int x: v)printf("%d ", x);
	
	
	
	// if (ans) printf("Yes\n");
	// else printf("No\n");
}
 

Submission Info

Submission Time
Task B - GCD Sequence
User osciiart
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2576 Byte
Status CE

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:109:34: error: no match for ‘operator/’ (operand types are ‘std::vector<int>::iterator {aka __gnu_cxx::__normal_iterator<int*, std::vector<int> >}’ and ‘int’)
   if (sum%6==2) v[4] = 6*(v.end()/6+1);
                                  ^
./Main.cpp:110:34: error: no match for ‘operator/’ (operand types are ‘std::vector<int>::iterator {aka __gnu_cxx::__normal_iterator<int*, std::vector<int> >}’ and ‘int’)
   if (sum%6==3) v[5] = 6*(v.end()/6+1);
                                  ^
./Main.cpp:111:34: error: no match for ‘operator/’ (operand types are ‘std::vector<int>::iterator {aka __gnu_cxx::__normal_iterator<int*, std::vector<int> >}’ and ‘int’)
   if (sum%6==5) v[5] = 6*(v.end()/6+1)+4;
                                  ^