結果
| 問題 |
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