結果
| 問題 |
No.3048 Swing
|
| コンテスト | |
| ユーザー |
AngrySadEight
|
| 提出日時 | 2025-03-07 23:17:40 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 41 ms / 2,000 ms |
| コード長 | 470 bytes |
| コンパイル時間 | 191 ms |
| コンパイル使用メモリ | 82,340 KB |
| 実行使用メモリ | 53,636 KB |
| 最終ジャッジ日時 | 2025-06-20 02:25:54 |
| 合計ジャッジ時間 | 4,296 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 62 |
ソースコード
x, n = map(int, input().split())
minus = (x <= 0)
if minus:
x *= -1
ng = 0
ok = 2000000001
while ok - ng > 1:
mid = (ok + ng) // 2
if mid * (mid + 1) // 2 <= x:
ng = mid
else:
ok = mid
after_n = x - ok * (ok + 1) // 2
after_p = after_n + ok + 1
ans = 0
if n <= ok:
ans = x - n * (n + 1) // 2
elif n % 2 == ok % 2:
ans = after_n - (n - ok) // 2
else:
ans = after_p + (n - (ok + 1)) // 2
if minus:
ans *= -1
print(ans)
AngrySadEight