結果

問題 No.459 C-VS for yukicoder
ユーザー miraxial
提出日時 2016-12-10 01:16:31
言語 Ruby
(3.4.1)
結果
AC  
実行時間 629 ms / 2,000 ms
コード長 695 bytes
コンパイル時間 147 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 17,152 KB
最終ジャッジ日時 2024-12-26 17:58:28
合計ジャッジ時間 13,883 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 58
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

h,w,n=gets.split.map &:to_i
c=[0]*w
h.times do |i|
  g=gets.chomp
  w.times do |i|
    c[i]+=1 if g[i]==?#
  end
end
d=[0]*w
v=[]
n.times do |i|
  v<< [gets.to_i,i]
end
v.each do |e|
  3.times do |i|
    d[e[0]+i]+=1
  end
end
w=v.sort
f=[]
w.each do |e|
  g=[]
  3.times do |i|
    t=e[0]+i
    d[t]-=1
    if c[t]>=d[t]*3
      g<< c[t]-d[t]*3
      c[t]=d[t]*3
    else
      g<< 0
    end
  end
  if g==[0,0,0]
    3.times do |i|
      t=e[0]+i
      if c[t]!=0
        g[i]+=1
        c[t]-=1
        break
      end
    end
  end
  f<< g+[e[1]]
end
f.sort!{|a,b|a[3]<=>b[3]}
f.each do |e|
  3.times do |i|
    s=""
    3.times do |j|
      s+=e[j]>=3-i ? ?#:?.
    end
    puts s
  end
end
0