結果
問題 |
No.2860 Heal Slimes
|
ユーザー |
![]() |
提出日時 | 2024-08-25 16:24:39 |
言語 | Crystal (1.14.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 804 bytes |
コンパイル時間 | 18,716 ms |
コンパイル使用メモリ | 294,352 KB |
実行使用メモリ | 20,264 KB |
最終ジャッジ日時 | 2024-08-25 16:25:03 |
合計ジャッジ時間 | 16,481 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 49 WA * 11 |
ソースコード
read_line.to_i.times do puts solve() ? "Yes" : "No" end def solve n, k, x = read_line.split.map(&.to_i) h = read_line.split.map(&.to_i64) min = h.min h.map! { |v| v - min } if h.any? { |v| v % x != 0 } return false end h.map! { |v| v // x } diff = Array.new(n - 1) { |i| h[i + 1] - h[i] } ok = true k.times.all? do |i| c = 0i64 if i == k - 1 c = -(1i64 << 50) end i.step(to: diff.size - 1, by: k) do |j| if c <= 0 c = diff[j] + c else ok = false break end end if i == k - 1 if c > 0 ok = false end elsif (diff.size - i) % k == 0 if c > 0 ok = false end else if c != 0 ok = false end end if !ok break end end ok end