結果
問題 | 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); } } } }