結果
問題 | No.2652 [Cherry 6th Tune N] Δρονε χιρχλινγ |
ユーザー |
![]() |
提出日時 | 2024-02-23 23:05:05 |
言語 | Crystal (1.14.0) |
結果 |
AC
|
実行時間 | 456 ms / 2,000 ms |
コード長 | 978 bytes |
コンパイル時間 | 13,159 ms |
コンパイル使用メモリ | 296,348 KB |
実行使用メモリ | 34,560 KB |
最終ジャッジ日時 | 2024-09-29 08:28:16 |
合計ジャッジ時間 | 50,434 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 42 |
ソースコード
MOD = 998244353i64read_line.to_i.times dosolve()enddef solven, l = read_line.split.map(&.to_i)xys = Array.new(n) { read_line.split.map(&.to_i) }mo = Mo.new(l, (l + 1 + 499) // 500)xys.each do |xy|mo.add_query(xy[0], xy[1])endmo.buildputs nmo.each do |x, y, _|puts "#{x} #{y}"endendclass Moinclude Enumerable(Tuple(Int32, Int32, Int32))def initialize(@n : Int32, @bucket_size : Int32)@bucket = Array(Array(Int32)).new((@n + @bucket_size - 1) // @bucket_size) { [] of Int32 }@qs = Array(Tuple(Int32, Int32)).newenddef add_query(l : Int32, r : Int32)@bucket[l // @bucket_size] << @qs.size@qs << {l, r}enddef build@bucket.size.times do |i|@bucket[i].sort_by! { |qi| @qs[qi][1] }if i % 2 != 0@bucket[i].reverse!endendenddef each@bucket.each do |b|b.each do |qi|yield ({@qs[qi][0], @qs[qi][1], qi})endendendend