結果
問題 | No.3048 Swing |
ユーザー |
![]() |
提出日時 | 2025-03-07 21:11:24 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 37 ms / 2,000 ms |
コード長 | 859 bytes |
コンパイル時間 | 164 ms |
コンパイル使用メモリ | 82,156 KB |
実行使用メモリ | 54,236 KB |
最終ジャッジ日時 | 2025-06-20 02:23:34 |
合計ジャッジ時間 | 3,706 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 62 |
ソースコード
def SUM(l, r, c): return (l+r)*c//2 X, N = map(int, input().split()) left = 0 right = 10**10 while left+1 < right: mid = (left+right)//2 if SUM(1, mid, mid) < abs(X): left = mid else: right = mid if N <= right: if X <= 0: print(X+SUM(1, N, N)) else: print(X-SUM(1, N, N)) exit() if X <= 0: X += SUM(1, right, right) else: X -= SUM(1, right, right) l, r = right+1, N if X <= 0: if l%2 == r%2: X += SUM(l, r, (r-l)//2+1) if l < r: X -= SUM(l+1, r-1, (r-l)//2) else: X += SUM(l, r-1, (r-l)//2+1) X -= SUM(l+1, r, (r-l)//2+1) else: if l%2 == r%2: X -= SUM(l, r, (r-l)//2+1) if l < r: X += SUM(l+1, r-1, (r-l)//2) else: X -= SUM(l, r-1, (r-l)//2+1) X += SUM(l+1, r, (r-l)//2+1) print(X)