結果
問題 | No.2309 [Cherry 5th Tune D] 夏の先取り |
ユーザー |
![]() |
提出日時 | 2023-06-23 16:46:57 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,156 bytes |
コンパイル時間 | 353 ms |
コンパイル使用メモリ | 43,332 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-30 20:57:13 |
合計ジャッジ時間 | 3,130 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 15 WA * 35 |
ソースコード
/* -*- coding: utf-8 -*- * * 2309.cc: No.2309 [Cherry 5th Tune D] 夏の先取り - yukicoder */ #include<cstdio> #include<algorithm> using namespace std; /* constant */ /* typedef */ typedef long long ll; /* global variables */ /* subroutines */ ll calc(int a, int b, int c, int x, int y, int z, int ps[]) { ll sum = 0; for (int i = 0; i < 3; i++) { if (ps[i] == 0) { int d0 = min(a, b); sum += (ll)x * d0; a -= d0, b -= d0; } else if (ps[i] == 1) { int d1 = min(b, c); sum += (ll)y * d1; b -= d1, c -= d1; } else { int d2 = min(c, a); sum += (ll)z * d2; c -= d2, a -= d2; } } return sum; } /* main */ int main() { int tn; scanf("%d", &tn); while (tn--) { int a, b, c, x, y, z, w; scanf("%d%d%d%d%d%d%d", &a, &b, &c, &x, &y, &z, &w); ll maxsum = 0, sw = 0; while (a >= 0 && b >= 0 && c >= 0) { int ps[3] = { 0, 1, 2 }; do { maxsum = max(maxsum, sw + calc(a, b, c, x, y, z, ps)); } while (next_permutation(ps, ps + 3)); sw += w; a--, b--, c--; } printf("%lld\n", maxsum); } return 0; }