結果
問題 | No.1137 Circles |
ユーザー | yuruhiya |
提出日時 | 2020-07-27 18:28:09 |
言語 | Crystal (1.11.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,030 bytes |
コンパイル時間 | 1,101 ms |
コンパイル使用メモリ | 217,728 KB |
最終ジャッジ日時 | 2024-11-14 22:48:39 |
合計ジャッジ時間 | 1,616 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
[2mShowing last frame. Use --error-trace for full trace.[0m In [4mMain.cr:27:9[0m [2m 27 | [0m[1madd(*Indexable.range_to_index_and_count(range, size), val)[0m [32;1m^[0m [33;1mError: splatting a union (Tuple(Int32, Int32) | Nil) is not yet supported[0m
ソースコード
class Imos(T) @flag = false def initialize(@size : Int32) @a = Array(T).new(@size + 1, T.zero) end def initialize(@size : Int32, init_val : T) @a = Array(T).new(@size + 1, init_val) end getter size : Int32 def add(start : Int, count : Int, val : T) raise "self had been called `build`" if @flag raise ArgumentError.new "Negative count: #{count}" if count < 0 start += size if start < 0 if 0 <= start <= size count = Math.min(count, size - start) @a[start] += val @a[start + count] -= val end nil end def add(range : Range, val : T) add(*Indexable.range_to_index_and_count(range, size), val) end def build raise "self had been called `build`" if @flag @flag = true (1..size).each do |i| @a[i] += @a[i - 1] end @a[0, size] end end n = read_line.to_i MAX_X = 2 * 10 ** 5 + 5 imos = Imos(Int32).new(MAX_X * 2) n.times do x, r = read_line.split.map &.to_i x += MAX_X imos.add(x - r...x + r, 1) end puts imos.build.max