Submission #80987
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <bits/stdc++.h> using namespace std; bool simulate( int n, int *c, int a[], int b[], int x[]) { int b_[n]; for ( int i = 0; i < n; i++) { b_[i] = b[i]; } int Min = INT_MAX; for ( int i = 0; i < n; i++) { Min = min(Min, b_[i] / x[i]); } Min++; int cost = 0; for ( int i = 0; i < n; i++) { cost += max((x[i] * Min - b_[i]) * a[i], 0); } if (cost <= *c) { for ( int i = 0; i < n; i++) { *c -= max((x[i] * Min - b_[i]) * a[i], 0); b[i] = max(b[i], x[i] * Min); } return ( true ); } else { return ( false ); } } int main() { int n, c; cin >> n >> c; int a[n]; //値段 for ( int i = 0; i < n; i++) { cin >> a[i]; } int b[n]; //個数 for ( int i = 0; i < n; i++) { cin >> b[i]; } int x[n]; //スパイス比率 for ( int i = 0; i < n; i++) { cin >> x[i]; } while (simulate(n, &c, a, b, x)); int Min = INT_MAX; for ( int i = 0; i < n; i++) { Min = min(Min, b[i] / x[i]); } int ans = 0; for ( int i = 0; i < n; i++) { ans += Min * x[i]; } cout << ans << "\n" ; return (0); } |
ステータス
項目 | データ |
---|---|
問題 | 1539 - ミックススパイス1 |
ユーザー名 | woody_1227 |
投稿日時 | 2024-09-05 17:38:16 |
言語 | C++17 |
状態 | Accepted |
得点 | 10 |
ソースコード長 | 1266 Byte |
最大実行時間 | 32 ms |
最大メモリ使用量 | 704 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 10 / 10 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
in1 | AC | 32 ms | 476 KB |
1
|
in2 | AC | 15 ms | 616 KB |
1
|
in3 | AC | 20 ms | 592 KB |
1
|
in4 | AC | 20 ms | 560 KB |
1
|
in5 | AC | 16 ms | 656 KB |
1
|
in6 | AC | 21 ms | 624 KB |
1
|
in7 | AC | 16 ms | 592 KB |
1
|
in8 | AC | 21 ms | 556 KB |
1
|
in9 | AC | 20 ms | 528 KB |
1
|
in10 | AC | 21 ms | 568 KB |
1
|
in11 | AC | 18 ms | 536 KB |
1
|
in12 | AC | 18 ms | 500 KB |
1
|
in13 | AC | 20 ms | 604 KB |
1
|
in14 | AC | 22 ms | 704 KB |
1
|
in15 | AC | 23 ms | 672 KB |
1
|
in16 | AC | 19 ms | 644 KB |
1
|