結果
問題 |
No.158 奇妙なお使い
|
ユーザー |
![]() |
提出日時 | 2025-06-12 13:57:10 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,037 bytes |
コンパイル時間 | 232 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 178,096 KB |
最終ジャッジ日時 | 2025-06-12 13:57:37 |
合計ジャッジ時間 | 3,295 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 20 WA * 7 |
ソースコード
from collections import deque def main(): a1000, a100, a1 = map(int, input().split()) D_b = int(input()) B_1000, B_100, B_1 = map(int, input().split()) D_c = int(input()) C_1000, C_100, C_1 = map(int, input().split()) visited = set() queue = deque() initial_state = (a1000, a100, a1) max_count = 0 queue.append((a1000, a100, a1, 0)) visited.add((a1000, a100, a1)) while queue: current_a1000, current_a100, current_a1, count = queue.popleft() # 尝试去B d = D_b use_1000 = min(current_a1000, d // 1000) remaining = d - use_1000 * 1000 use_100 = min(current_a100, remaining // 100) remaining -= use_100 * 100 use_1 = min(current_a1, remaining) if use_1 == remaining: new_a1000 = current_a1000 - use_1000 + B_1000 new_a100 = current_a100 - use_100 + B_100 new_a1 = current_a1 - use_1 + B_1 new_state = (new_a1000, new_a100, new_a1) if new_state not in visited: visited.add(new_state) queue.append((new_a1000, new_a100, new_a1, count + 1)) if count + 1 > max_count: max_count = count + 1 # 尝试去C d = D_c use_1000 = min(current_a1000, d // 1000) remaining = d - use_1000 * 1000 use_100 = min(current_a100, remaining // 100) remaining -= use_100 * 100 use_1 = min(current_a1, remaining) if use_1 == remaining: new_a1000 = current_a1000 - use_1000 + C_1000 new_a100 = current_a100 - use_100 + C_100 new_a1 = current_a1 - use_1 + C_1 new_state = (new_a1000, new_a100, new_a1) if new_state not in visited: visited.add(new_state) queue.append((new_a1000, new_a100, new_a1, count + 1)) if count + 1 > max_count: max_count = count + 1 print(max_count) if __name__ == "__main__": main()