結果
| 問題 |
No.1137 Circles
|
| ユーザー |
yuruhiya
|
| 提出日時 | 2020-07-27 18:26:34 |
| 言語 | Crystal (1.14.0) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,025 bytes |
| コンパイル時間 | 2,671 ms |
| コンパイル使用メモリ | 218,048 KB |
| 最終ジャッジ日時 | 2024-11-14 22:48:35 |
| 合計ジャッジ時間 | 4,237 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、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
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
a = imos.build
puts a.max
yuruhiya