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; ^