結果

問題 No.3048 Swing
ユーザー Eki1009
提出日時 2025-03-07 21:10:41
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 38 ms / 2,000 ms
コード長 461 bytes
コンパイル時間 407 ms
コンパイル使用メモリ 82,664 KB
実行使用メモリ 54,076 KB
最終ジャッジ日時 2025-06-20 02:23:27
合計ジャッジ時間 4,213 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 62
権限があれば一括ダウンロードができます

ソースコード

diff #

x,n = map(int,input().split())
if x<=0:
  ng,ok = 0,n
  while ok-ng>1:
    i = ok+ng>>1
    if x+i*(i+1)//2>0:
      ok = i
    else:
      ng = i
  x += ok*(ok+1)//2
  t = ok+1
  sgn = -1
else:
  ng,ok = 0,n
  while ok-ng>1:
    i = ok+ng>>1
    if x-i*(i+1)//2<=0:
      ok = i
    else:
      ng = i
  x -= ok*(ok+1)//2
  t = ok+1
  sgn = 1
def f(t,n):
  if t>n:
    return 0
  m = (n-t)//2+1
  return (t+(t+2*(m-1)))*m//2
x += (f(t,n)-f(t+1,n))*sgn
print(x)
0