結果

問題 No.9 モンスターのレベル上げ
ユーザー gew1fw
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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()
0