結果
問題 | No.1150 シュークリームゲーム(Easy) |
ユーザー |
![]() |
提出日時 | 2025-06-12 14:36:13 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 79 ms / 2,000 ms |
コード長 | 740 bytes |
コンパイル時間 | 138 ms |
コンパイル使用メモリ | 82,416 KB |
実行使用メモリ | 90,980 KB |
最終ジャッジ日時 | 2025-06-12 14:36:32 |
合計ジャッジ時間 | 4,213 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 43 |
ソースコード
n = int(input()) s, t = map(int, input().split()) s -= 1 # Convert to 0-based index t -= 1 A = list(map(int, input().split())) X = 0 Y = 0 equi = [] for u in range(n): # Compute minimal distance from s to u d_s1 = (u - s) % n d_s2 = (s - u) % n d_s = min(d_s1, d_s2) # Compute minimal distance from t to u d_t1 = (u - t) % n d_t2 = (t - u) % n d_t = min(d_t1, d_t2) if d_s < d_t: X += A[u] elif d_t < d_s: Y += A[u] else: equi.append(A[u]) # Sort equidistant vertices in descending order equi.sort(reverse=True) # Distribute equidistant vertices for i in range(len(equi)): if i % 2 == 0: X += equi[i] else: Y += equi[i] print(X - Y)