結果
問題 | No.2593 Reorder and Mod 120 |
ユーザー | srjywrdnprkt |
提出日時 | 2023-12-21 10:33:21 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,007 bytes |
コンパイル時間 | 2,134 ms |
コンパイル使用メモリ | 208,684 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-27 10:53:59 |
合計ジャッジ時間 | 3,009 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 26 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); //1:1, 10:10, 100:100, 1000~:40 ll N, sm=0; set<ll> st; vector<ll> cnt(10); string S; cin >> N >> S; for (int i=0; i<N; i++){ cnt[S[i]-'0']++; sm += S[i]-'0'; } if (N == 1){ cout << 1 << endl; return 0; } if (N == 2){ cout << (S[0] == S[1] ? 1 : 2) << endl; return 0; } for (int i=1; i<10; i++){ for (int j=1; j<10; j++){ for (int k=1; k<10; k++){ bool f=1; cnt[i]--; cnt[j]--; cnt[k]--; if (cnt[i] < 0 || cnt[j] < 0 || cnt[k] < 0) f=0; cnt[i]++; cnt[j]++; cnt[k]++; if (f) st.insert(((sm-i-j-k)*40+i+j*10+k*100) % 120); } } } cout << st.size() << endl; return 0; }