結果
問題 | No.1594 Three Classes |
ユーザー |
|
提出日時 | 2021-07-09 21:36:40 |
言語 | C++14 (gcc 11.2.0 + boost 1.78.0) |
結果 |
AC
|
実行時間 | 248 ms / 2,000 ms |
コード長 | 1,244 bytes |
コンパイル時間 | 3,418 ms |
使用メモリ | 3,568 KB |
最終ジャッジ日時 | 2022-12-17 01:42:30 |
合計ジャッジ時間 | 6,889 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge12 |
テストケース
テストケース表示入力 | 結果 | 実行時間 使用メモリ |
---|---|---|
testcase_00 | AC | 244 ms
3,364 KB |
testcase_01 | AC | 1 ms
3,368 KB |
testcase_02 | AC | 2 ms
3,356 KB |
testcase_03 | AC | 10 ms
3,468 KB |
testcase_04 | AC | 244 ms
3,480 KB |
testcase_05 | AC | 243 ms
3,432 KB |
testcase_06 | AC | 1 ms
3,368 KB |
testcase_07 | AC | 5 ms
3,368 KB |
testcase_08 | AC | 243 ms
3,552 KB |
testcase_09 | AC | 244 ms
3,432 KB |
testcase_10 | AC | 244 ms
3,484 KB |
testcase_11 | AC | 244 ms
3,368 KB |
testcase_12 | AC | 248 ms
3,368 KB |
testcase_13 | AC | 1 ms
3,492 KB |
testcase_14 | AC | 30 ms
3,420 KB |
testcase_15 | AC | 27 ms
3,364 KB |
testcase_16 | AC | 13 ms
3,368 KB |
testcase_17 | AC | 9 ms
3,476 KB |
testcase_18 | AC | 1 ms
3,416 KB |
testcase_19 | AC | 2 ms
3,428 KB |
testcase_20 | AC | 3 ms
3,568 KB |
ソースコード
#include<bits/stdc++.h> #include <atcoder/all> #define ll long long int #define vec vector<ll> #define mat vector<vector<ll>> #define pll pair<ll,ll> #define count __builtin_popcountll using namespace std; using namespace atcoder; //using mint = modint1000000007; const ll mod=1000000007;//998244353; const ll inf=1000000000000000000; ll dx4[4]={1,0,-1,0}; ll dy4[4]={0,-1,0,1}; ll dx8[8]={1,0,-1,1,-1,1,0,-1}; ll dy8[8]={1,1,1,0,0,-1,-1,-1}; vec psin(ll a,ll p){ ll q=p; ll r=1; vec s; if(a==0){ s={0}; return s; } while(a!=0){ s.push_back(a%p); a/=p; } reverse(s.begin(),s.end()); return s; } int main(){ cout << fixed << setprecision(15); ll n; cin >> n; vec e(n); for(ll i=0;i<n;i++)cin >> e[i]; vec a(15); a[0]=1; for(ll i=0;i<14;i++){ a[i+1]=a[i]*3; } bool ok=0; for(ll i=0;i<a[n];i++){ vec v=psin(i,3); ll m=v.size(); vec u(n-m,0); for(ll j=0;j<v.size();j++){ u.push_back(v[j]); } ll x=0,y=0,z=0; for(ll j=0;j<n;j++){ if(u[j]==0)x+=e[j]; else if(u[j]==1)y+=e[j]; else z+=e[j]; } if(x==y && y==z){ ok=1; } if(ok)break; } if(ok)cout << "Yes" << endl; else cout << "No" << endl; return 0; }