結果
問題 |
No.443 GCD of Permutation
|
ユーザー |
![]() |
提出日時 | 2016-11-12 01:47:05 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,145 bytes |
コンパイル時間 | 612 ms |
コンパイル使用メモリ | 75,688 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-25 10:48:45 |
合計ジャッジ時間 | 1,323 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 2 |
other | AC * 18 WA * 10 |
ソースコード
#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); vector<int> cnt2(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; cnt2[ n[i]-'0' ]++; } if( f ){ cout << n << endl; return 0; } int ans = 1; // if( accumulate( cnt.begin(), cnt.end(), 0 ) == 1 ){ // for(int i=0; i<10; i++) if( cnt[i] != 0 && (i != 2 && i != 3 && i != 4 && i != 6 && i != 9 ) ) ans *= i; // } if( accumulate( cnt.begin(), cnt.end(), 0 ) == 1 && cnt[5] == 1 ){ ans *= 5; } if( tmp % 3 == 0 ) ans *= 3; if( tmp % 9 == 0 ) ans *= 9; if( f3 ){ ans *= 4; }else if( f2 ){ ans *= 2; } cout << ans << endl; return 0; } // EOF