結果
問題 | No.1687 What the Heck? |
ユーザー | FromBooska |
提出日時 | 2023-03-15 23:06:43 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,438 bytes |
コンパイル時間 | 237 ms |
コンパイル使用メモリ | 81,932 KB |
実行使用メモリ | 102,400 KB |
最終ジャッジ日時 | 2024-09-18 08:56:50 |
合計ジャッジ時間 | 2,219 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 37 ms
52,104 KB |
testcase_01 | AC | 38 ms
52,308 KB |
testcase_02 | AC | 38 ms
53,244 KB |
testcase_03 | AC | 38 ms
52,944 KB |
testcase_04 | AC | 37 ms
52,616 KB |
testcase_05 | WA | - |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | AC | 57 ms
74,756 KB |
testcase_10 | AC | 52 ms
68,832 KB |
testcase_11 | AC | 52 ms
70,488 KB |
testcase_12 | AC | 85 ms
101,384 KB |
testcase_13 | AC | 84 ms
101,248 KB |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | WA | - |
testcase_17 | WA | - |
testcase_18 | WA | - |
testcase_19 | WA | - |
ソースコード
# 後ろの方が得点が高い # つまり後ろで勝つのが得策、勝つときは1点差で勝てばいい # また、後攻の最高値だけに負けてあと全部勝つのも可能 # N=1のとき、0 # N=2のとき、[1, 2]なら0、[2, 1]なら1 # N=3のとき以上は最高値だけ負けるとすればいい # WA複数出た、ということは相手のマックス値にマックス値を当てて負けない方がいい場合があるということか # たとえばP=[4, 3, 2, 1, 5]に対してのベストは[1, 4, 3, 2, 5] # 2通りの答えを作って最高値を選ぶか # それを発展させれば、その数字だけ負けて、それ以上はdrawとすることができる # それで全探索、これはやろうとすると二重ループになってしまうのでやめた N = int(input()) P = list(map(int, input().split())) if N == 1: ans = 0 elif N == 2: if P[0] == 1: ans = 0 else: ans = 1 else: # Nだけ負ける second_point1 = 0 for i in range(N): if P[i] == N: second_point1 = i+1 break ans1 = N*(N+1)//2 - second_point1*2 # NにNをぶつけ、N-1を負ける second_point2 = 0 for i in range(N): if P[i] == N-1: second_point2 = i+1 break ans2 = (N-1)*(N)//2 - second_point2*2 ans = max(ans1, ans2) #print('ans1', ans1, 'ans2', ans2) print(ans)