結果
問題 | No.2432 Flip and Move |
ユーザー | tomerun |
提出日時 | 2023-08-18 23:04:59 |
言語 | Crystal (1.14.0) |
結果 |
AC
|
実行時間 | 1,464 ms / 2,000 ms |
コード長 | 606 bytes |
コンパイル時間 | 11,908 ms |
コンパイル使用メモリ | 294,324 KB |
実行使用メモリ | 91,520 KB |
最終ジャッジ日時 | 2024-11-28 09:42:48 |
合計ジャッジ時間 | 21,293 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
h, w = read_line.split.map(&.to_i) k = read_line.to_i64 k %= (h * w * 4) y = 0 x = 0 dy = 1 dx = 1 ans = Array.new(h) { Array.new(w, false) } k.times do ans[y][x] = !ans[y][x] if y + dy < 0 || h <= y + dy dy *= -1 else y += dy end if x + dx < 0 || w <= x + dx dx *= -1 else x += dx end end h.times do |i| puts w.times.map { |j| ans[i][j] ? '#' : '.' }.join end def move(l, k) ret = Array.new(l, false) len = k % (l * 2) if len < k len.times { |i| ret[i] = true } else ret.fill(true) (len - k).times { |i| ret[l - 1 - i] = false } end return ret end