結果
問題 |
No.606 カラフルタイル
|
ユーザー |
|
提出日時 | 2017-12-18 15:09:24 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 562 ms / 2,000 ms |
コード長 | 908 bytes |
コンパイル時間 | 133 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 64,128 KB |
最終ジャッジ日時 | 2024-12-15 23:49:54 |
合計ジャッジ時間 | 8,894 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 |
コンパイルメッセージ
Syntax OK
ソースコード
def readl $stdin.gets.split(" ") end N,K,Q = readl.map{ |r| r.to_i } rows = [] rd = {} cols = [] cd = {} #p rows #p cols (0...Q).map{ |i| [i, *(readl)] }.reverse.each{ |l| i,a,b,c = l b = b.to_i c = c.to_i colorpair = [i,c] case a when "R" next if rd.key?(b) rows << colorpair rd[b] = 1 when "C" next if cd.key?(b) cols << colorpair cd[b] = 1 end } rows.reverse! cols.reverse! color_count = (0...K).map{ 0 } BR = N - rows.size BC = N - cols.size color_count[0] += BR*BC i,j = 0,0 while i < rows.size || j < cols.size if i == rows.size color_count[cols[j][1]-1] += BR+i j += 1 next end if j == cols.size color_count[rows[i][1]-1] += BC+j i += 1 next end r = rows[i] c = cols[j] if r[0] < c[0] color_count[r[1]-1] += BC+j i += 1 else color_count[c[1]-1] += BR+i j += 1 end end puts color_count