結果
| 問題 |
No.3048 Swing
|
| コンテスト | |
| ユーザー |
ks2m
|
| 提出日時 | 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);
}
}
}
ks2m