結果
問題 | No.3048 Swing |
ユーザー |
![]() |
提出日時 | 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)