結果
問題 |
No.443 GCD of Permutation
|
ユーザー |
![]() |
提出日時 | 2016-11-12 01:01:35 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 953 bytes |
コンパイル時間 | 579 ms |
コンパイル使用メモリ | 75,288 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-11-25 10:44:52 |
合計ジャッジ時間 | 1,329 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 2 |
other | AC * 16 WA * 12 |
ソースコード
#include<iostream> #include<algorithm> #include<cstdio> #include<cstdlib> #include<vector> #include<map> #include<queue> #include<string> #include<sstream> #include<cmath> #include<numeric> using namespace std; int main(){ string n; cin >> n; int tmp = 0; int a = n[0]-'0'; bool f = true; bool f2 = true; bool f3 = true; vector<int> cnt(10, 0); for(int i=0; i<n.size(); i++){ tmp += n[i]-'0'; if( a != n[i]-'0' ) f = false; if( (n[i]-'0')%2 != 0 ) f2 = false; if( (n[i]-'0')%4 != 0 ) f3 = false; if( (n[i]-'0') != 0 ) cnt[ n[i]-'0' ] = 1; } if( f ){ cout << n << endl; return 0; } int ans = 1; if( tmp % 3 == 0 ) ans = 3; else if( tmp % 9 == 0 ) ans = 9; else if( accumulate( cnt.begin(), cnt.end(), 0 ) == 1 ){ for(int i=0; i<10; i++) if( cnt[i] != 0 ) ans *= i; } if( f3 ){ ans *= 4; }else if( f2 ){ ans *= 2; } cout << ans << endl; return 0; } // EOF