結果
問題 |
No.1632 Sorting Integers (GCD of M)
|
ユーザー |
![]() |
提出日時 | 2021-07-30 21:44:04 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 896 bytes |
コンパイル時間 | 397 ms |
コンパイル使用メモリ | 49,664 KB |
実行使用メモリ | 8,192 KB |
最終ジャッジ日時 | 2024-09-15 23:33:00 |
合計ジャッジ時間 | 5,459 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 34 WA * 21 OLE * 1 -- * 3 |
ソースコード
#include <stdio.h> #include <vector> int gcd(int a, int b) { return a?gcd(b%a,a):b; } int c[110]; std::vector<int> V; int main() { int a; scanf("%d",&a); for(int i=1;i<=9;i++) scanf("%d",&c[i]); int count = 0; for(int i=1;i<=9;i++) if(c[i]>0) count++; if(count==1) { for(int i=1;i<=9;i++) while(c[i]--) printf("%d",i); return 0; } for(int i=1;i<=9;i++) if(c[i]>0) V.push_back(i); int g = 0; for(int i=0;i<V.size();i++) for(int j=i+1;j<V.size();j++) g = gcd(g,9*(V[j]-V[i])); int control; int L = 1; // 2 control = 1; for(int i=1;i<=9;i+=2) if(c[i]>0) control = 0; if(control) L *= 2; // 4 control = 1; for(int i=1;i<=9;i++) { if(i==4) continue; if(i==8) continue; if(c[i]>0) control = 0; } if(control) L *= 2; // 3 int sum = 0; for(int i=1;i<=9;i++) sum += i*c[i], sum %= 9; if(sum%3==0) L *= 3; if(sum%9==0) L *= 3; printf("%d",gcd(L,g)); }