結果
問題 |
No.3041 非対称じゃんけん
|
ユーザー |
![]() |
提出日時 | 2025-02-28 22:06:57 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,702 bytes |
コンパイル時間 | 3,632 ms |
コンパイル使用メモリ | 283,500 KB |
実行使用メモリ | 15,172 KB |
最終ジャッジ日時 | 2025-02-28 22:07:07 |
合計ジャッジ時間 | 8,824 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 3 WA * 17 TLE * 1 -- * 9 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define For(i, a, b) for(int i = (a); i < (b); i++) #define rep(i, n) For(i, 0, n) #define rFor(i, a, b) for(int i = (a); i >= (b); i--) #define ALL(v) (v).begin(), (v).end() #define rALL(v) (v).rbegin(), (v).rend() using lint = long long; using ld = long double; int INF = 2000000000; lint LINF = 1000000000000000000; struct SetupIo { SetupIo() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); } } setupio; vector<int> merge(vector<int> &a, vector<int> &b) { int n = a.size(), m = b.size(); vector<int> c; int i = 0, j = 0; while (i < n || j < m) { if (i == n) { c.emplace_back(b[j++]); } else if (j == m) { c.emplace_back(a[i++]); } else { if (a[i] <= b[j]) { c.emplace_back(a[i++]); } else { c.emplace_back(b[j++]); } } } return c; } int main() { int n, f; cin >> n >> f; vector<int> a(n), b(n), c(n); rep(i, n) { cin >> a[i]; } rep(i, n) { cin >> b[i]; } rep(i, n) { cin >> c[i]; } vector<int> vec; vec = {0}; rep(i, n) { vector<int> va, vb, vc; for (int x : vec) { va.emplace_back(x + a[i]); vb.emplace_back(x + b[i]); vc.emplace_back(x + c[i]); } vec = merge(vec, va); vec.erase(unique(ALL(vec)), vec.end()); vec = merge(vec, vb); vec.erase(unique(ALL(vec)), vec.end()); vec = merge(vec, vc); vec.erase(unique(ALL(vec)), vec.end()); cout << vec.size() << "\n"; } }