結果

問題 No.606 カラフルタイル
ユーザー YosukeKawadaYosukeKawada
提出日時 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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 92 ms
12,288 KB
testcase_01 AC 96 ms
12,160 KB
testcase_02 AC 90 ms
12,288 KB
testcase_03 AC 89 ms
12,160 KB
testcase_04 AC 88 ms
12,160 KB
testcase_05 AC 89 ms
12,160 KB
testcase_06 AC 90 ms
12,032 KB
testcase_07 AC 90 ms
12,160 KB
testcase_08 AC 91 ms
12,032 KB
testcase_09 AC 92 ms
12,032 KB
testcase_10 AC 98 ms
12,160 KB
testcase_11 AC 88 ms
12,032 KB
testcase_12 AC 90 ms
12,288 KB
testcase_13 AC 119 ms
15,872 KB
testcase_14 AC 88 ms
12,032 KB
testcase_15 AC 93 ms
12,544 KB
testcase_16 AC 404 ms
53,120 KB
testcase_17 AC 547 ms
62,848 KB
testcase_18 AC 461 ms
59,136 KB
testcase_19 AC 447 ms
58,240 KB
testcase_20 AC 551 ms
61,440 KB
testcase_21 AC 448 ms
58,880 KB
testcase_22 AC 459 ms
58,752 KB
testcase_23 AC 443 ms
57,472 KB
testcase_24 AC 529 ms
59,264 KB
testcase_25 AC 500 ms
56,192 KB
testcase_26 AC 555 ms
64,128 KB
testcase_27 AC 562 ms
62,976 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

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
0