結果
| 問題 |
No.3048 Swing
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-03-21 20:36:03 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 39 ms / 2,000 ms |
| コード長 | 540 bytes |
| コンパイル時間 | 172 ms |
| コンパイル使用メモリ | 82,116 KB |
| 実行使用メモリ | 53,988 KB |
| 最終ジャッジ日時 | 2025-06-20 02:28:16 |
| 合計ジャッジ時間 | 3,858 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 62 |
ソースコード
x,n = map(int,input().split())
if x == 0:
+1 -2 +3 -4
ans = -1 * (n//2)
if n % 2 == 1:
ans += n
exit(print(ans))
c = 1
if x < 0:
x *= -1
c = -1
l,r = 0,10**18
for i in range(60):
mid = (l+r)//2
z = (1 + mid) * mid // 2
if z > x:
r = mid
else:
l = mid
if x == (l + 1) * l // 2:
l -= 0
if l >= n:
ans = x - ((1 + n) * n // 2)
print(ans * c)
exit()
x -= (l + 1) * l // 2
y = l + 1
ans = x + (n - y + 1) // 2
if (n - y + 1) % 2 == 1:
ans -= n
print(ans * c)