結果
| 問題 |
No.853 河原の石
|
| コンテスト | |
| ユーザー |
CuriousFairy315
|
| 提出日時 | 2019-07-06 01:44:27 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 136 ms / 3,153 ms |
| コード長 | 783 bytes |
| コンパイル時間 | 2,106 ms |
| コンパイル使用メモリ | 77,744 KB |
| 実行使用メモリ | 54,424 KB |
| 最終ジャッジ日時 | 2024-09-22 14:39:00 |
| 合計ジャッジ時間 | 11,675 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 57 |
ソースコード
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (Scanner sc = new Scanner(System.in)) {
int H = sc.nextInt(), W = Math.abs(sc.nextInt());
if (H < 0 || H > 1000000000) System.exit(1);
else if (W > 1000000000) System.exit(1);
if (W == 0) { // 自明な0手
System.out.println(0);
} else {
long ans = H++;
for (long i = 1, j = 1;;j += i++) {
if (j + i <= Math.min(H, W)) {
ans += i * i;
} else { // 終端処理
long dist = Math.min(H, W) - j;
ans += i * dist;
if (W <= H) break;
ans += (i * i - (i - dist)) * ((W - H) / i);
ans += i * ((W - H) % i);
ans -= Math.min(i - dist, (W - H) % i);
break;
}
}
System.out.println(ans);
}
}
}
}
CuriousFairy315