結果
問題 | No.1594 Three Classes |
ユーザー | CJ314 |
提出日時 | 2021-07-09 22:01:10 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 36 ms / 2,000 ms |
コード長 | 961 bytes |
コンパイル時間 | 4,140 ms |
コンパイル使用メモリ | 195,824 KB |
最終ジャッジ日時 | 2025-01-22 21:45:30 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; #define rep(i, n) for (long long i = 0LL; i < (long long)(n); i++) const long long INF = 2e18; // 最小二乗法を用いて base^exp を求めます。 template <typename T, typename U> long long pows(T base, U exp) { ll ret = 1; while (exp != 0) { if (exp & 1) { ret *= base; } base *= base; exp >>= 1; } return ret; } int main(void) { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); ll N; cin >> N; vector<ll> E(N); rep(i, N) cin >> E[i]; ll t = pows(3, N); rep(i, t) { vector<ll> arr(3); ll u = i; rep(j, N) { arr.at(u % 3) += E.at(j); u /= 3; } if (arr.at(0) == arr.at(1) && arr.at(0) == arr.at(2)) { cout << "Yes\n"; exit(0); } } cout << "No\n"; }