結果

問題 No.3048 Swing
ユーザー titia
提出日時 2025-03-07 21:15:26
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 30 ms / 2,000 ms
コード長 518 bytes
コンパイル時間 331 ms
コンパイル使用メモリ 12,032 KB
実行使用メモリ 10,368 KB
最終ジャッジ日時 2025-06-20 02:23:41
合計ジャッジ時間 3,274 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 62
権限があれば一括ダウンロードができます

ソースコード

diff #

x,n=map(int,input().split())

X=abs(x)

NG=10**18
OK=0

while NG>OK+1:
    mid=(OK+NG)//2

    if mid*(mid+1)//2<=X:
        OK=mid
    else:
        NG=mid

if n<=OK:
    p=n*(n+1)//2

    if x>0:
        print(x-p)
    else:
        print(x+p)
    exit()

p=OK*(OK+1)//2

if x>0:
    x-=p
else:
    x+=p

if (n-OK)%2==0:
    if x>0:
        x+=(n-OK)//2
    else:
        x-=(n-OK)//2

    print(x)
else:
    if x>0:
        x+=(n-OK)//2
        x-=n
    else:
        x-=(n-OK)//2
        x+=n

    print(x)
    


0