結果
問題 |
No.2860 Heal Slimes
|
ユーザー |
![]() |
提出日時 | 2024-08-25 16:20:12 |
言語 | Crystal (1.14.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 902 bytes |
コンパイル時間 | 11,482 ms |
コンパイル使用メモリ | 295,352 KB |
実行使用メモリ | 20,272 KB |
最終ジャッジ日時 | 2024-08-25 16:20:31 |
合計ジャッジ時間 | 16,832 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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| if i == k - 1 && (diff.size - i) % k == 0 next end if i == k - 1 if i.step(to: diff.size - 1, by: k).sum { |j| diff[j] } < 0 ok = false end next end if (diff.size - i) % k == 0 if i.step(to: diff.size - 1, by: k).sum { |j| diff[j] } > 0 ok = false end next end c = 0i64 i.step(to: diff.size - 1, by: k) do |j| if c <= 0 c = diff[j] + c else ok = false break end end if c != 0 ok = false end end ok end