結果
問題 | No.2593 Reorder and Mod 120 |
ユーザー | umezo |
提出日時 | 2023-12-21 07:01:50 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 926 bytes |
コンパイル時間 | 2,246 ms |
コンパイル使用メモリ | 207,624 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-27 10:47:16 |
合計ジャッジ時間 | 2,774 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 26 |
ソースコード
#define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() typedef long long ll; #include<bits/stdc++.h> using namespace std; const int MOD=120; int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); int n; string s; cin>>n>>s; if(n==1){ cout<<1<<endl; return 0; } if(n==2){ if(s[0]==s[1]) cout<<1<<endl; else cout<<2<<endl; return 0; } vector<int> A(10); ll sum=0; rep(i,n){ A[s[i]-'0']++; sum+=s[i]-'0'; } set<ll> se; for(int i=1;i<10;i++){ for(int j=1;j<10;j++){ for(int k=1;k<10;k++){ vector<int> B(10); B[i]++,B[j]++,B[k]++; bool b=true; for(int l=1;l<10;l++){ if(A[l]<B[l]) b=false; } if(b==false) continue; ll tmp=sum; tmp-=i+j+k; se.insert((40*tmp+100*k+10*j+i)%120); } } } cout<<se.size()<<endl; return 0; }