結果
問題 | No.2309 [Cherry 5th Tune D] 夏の先取り |
ユーザー | t98slider |
提出日時 | 2023-05-19 22:13:54 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 65 ms / 3,000 ms |
コード長 | 1,075 bytes |
コンパイル時間 | 1,847 ms |
コンパイル使用メモリ | 175,564 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-18 02:57:10 |
合計ジャッジ時間 | 4,550 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; void solve(){ ll ans = 0, w; vector<ll> a(3), b(3), c(3); for(auto &&v : a) cin >> v; for(auto &&v : b) cin >> v; cin >> w; vector<pair<int,int>> pa = {{0, 1}, {1, 2}, {2, 0}}; int u, v; auto f = [&](){ ll r = min(a[0], a[1]); r = min(r, a[2]); for(ll i = 0; i <= r; i++){ do{ ll tmp = max(i * w, (i / 2) * (b[0] + b[1] + b[2]) + (i & 1) * w); for(int j = 0; j < 3; j++) c[j] = a[j]; for(int j = 0; j < 3; j++){ tie(u, v) = pa[j]; ll d = min(c[u], c[v]); c[u] -= d, c[v] -= d; tmp += d * b[u]; } ans = max(ans, tmp); }while(next_permutation(pa.begin(), pa.end())); a[0]--, a[1]--, a[2]--; } }; f(); cout << ans << '\n'; } int main(){ ios::sync_with_stdio(false); cin.tie(0); int T; cin >> T; while(T--) solve(); }