結果
問題 |
No.9 モンスターのレベル上げ
|
ユーザー |
![]() |
提出日時 | 2025-06-12 13:04:28 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,675 bytes |
コンパイル時間 | 303 ms |
コンパイル使用メモリ | 82,916 KB |
実行使用メモリ | 85,728 KB |
最終ジャッジ日時 | 2025-06-12 13:09:46 |
合計ジャッジ時間 | 6,837 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 2 TLE * 1 -- * 17 |
ソースコード
import sys def main(): N = int(sys.stdin.readline()) A = list(map(int, sys.stdin.readline().split())) B = list(map(int, sys.stdin.readline().split())) min_max = float('inf') for k in range(N): enemy_order = B[k:] + B[:k] current_A = A.copy() used = [False] * N count = [0] * N for b in enemy_order: min_unused_val = float('inf') min_unused_idx = -1 min_used_val = float('inf') min_used_idx = -1 for i in range(N): if not used[i]: if current_A[i] < min_unused_val: min_unused_val = current_A[i] min_unused_idx = i elif current_A[i] == min_unused_val and (min_unused_idx == -1 or i < min_unused_idx): min_unused_idx = i else: if current_A[i] < min_used_val: min_used_val = current_A[i] min_used_idx = i elif current_A[i] == min_used_val and (min_used_idx == -1 or i < min_used_idx): min_used_idx = i if min_unused_val <= min_used_val and min_unused_idx != -1: chosen = min_unused_idx used[chosen] = True else: chosen = min_used_idx current_A[chosen] += b // 2 count[chosen] += 1 current_max = max(count) if current_max < min_max: min_max = current_max print(min_max) if __name__ == "__main__": main()