結果
問題 | No.3048 Swing |
ユーザー |
![]() |
提出日時 | 2025-03-07 21:15:57 |
言語 | Java (openjdk 23) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 858 bytes |
コンパイル時間 | 3,536 ms |
コンパイル使用メモリ | 85,664 KB |
実行使用メモリ | 54,564 KB |
最終ジャッジ日時 | 2025-03-14 17:00:17 |
合計ジャッジ時間 | 12,535 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 58 WA * 1 |
ソースコード
import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); long x = sc.nextLong(); long n = sc.nextLong(); sc.close(); long s = 1; if (x < 0) { x = -x; s = -1; } long ng = 2000000000; long ok = -1; while (Math.abs(ok - ng) > 1) { long mid = (ok + ng) / 2; long val = mid * (mid + 1) / 2; if (val < x) { ok = mid; } else { ng = mid; } } if (n <= ok) { long sub = n * (n + 1) / 2; x -= sub; System.out.println(x * s); return; } long sub = ok * (ok + 1) / 2; x -= sub; long n2 = n - ok; long v0 = x; long v1 = v0 - (ok + 1); long n21 = n2 / 2; long n22 = n2 % 2; if (n22 == 0) { v0 += n21; System.out.println(v0 * s); } else { v1 -= n21; System.out.println(v1 * s); } } }