結果

問題 No.3048 Swing
コンテスト
ユーザー Eki1009
提出日時 2025-03-07 21:10:41
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 57 ms / 2,000 ms
+ 217µs
コード長 461 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 225 ms
コンパイル使用メモリ 95,976 KB
実行使用メモリ 79,512 KB
最終ジャッジ日時 2026-07-12 10:43:30
合計ジャッジ時間 5,954 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 62
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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