結果

問題 No.60 魔法少女
ユーザー gigurururu
提出日時 2014-11-10 00:17:14
言語 Ruby
(3.4.1)
結果
AC  
実行時間 1,459 ms / 5,000 ms
コード長 510 bytes
コンパイル時間 136 ms
コンパイル使用メモリ 7,296 KB
実行使用メモリ 65,664 KB
最終ジャッジ日時 2024-12-26 14:30:18
合計ジャッジ時間 14,010 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 10
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

def g;gets.split.map(&:to_i);end
n,k=g
e=(1..n).map{g}
t=(1..k).map{g}
ex=e.map{|x,_|x}
ey=e.map{|x,y|y}
xn=(t.map{|x,_|x}+ex).min
xx=(t.map{|x,y,w|x+w}+ex).max
yn=(t.map{|x,y|y}+ey).min
yx=(t.map{|x,y,w,h|y+h}+ey).max

m=(yn..yx+1).map{[0]*(xx-xn+1+1)}

t.each{|x,y,w,h,d|
  x-=xn;y-=yn
  m[y][x]+=d
  m[y][x+w+1]-=d
  m[y+h+1][x]-=d
  m[y+h+1][x+w+1]+=d
}
a=[0]*(xx-xn+1)
m.map!{|i|
  s=0
  a=a.zip(i.map{|j|s+=j}).map{|j,l|j+l}
}

p e.map{|x,y,h|[h-m[y-yn][x-xn],0].max}.inject(:+)
0