結果
問題 | No.9 モンスターのレベル上げ |
ユーザー |
|
提出日時 | 2015-01-29 20:32:05 |
言語 | Ruby (3.4.1) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 726 bytes |
コンパイル時間 | 151 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 25,344 KB |
最終ジャッジ日時 | 2024-06-23 22:26:58 |
合計ジャッジ時間 | 32,330 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 TLE * 1 |
コンパイルメッセージ
Syntax OK
ソースコード
class BinHeap def initialize(buf=nil) @buf=buf||[nil] @max=@buf.size end def add(n) a=n i=@max @max+=1 i>>=1 while i>1 && a<@buf[i]=@buf[i>>1] @buf[i]=a end def get ret=@buf[1] a=@buf[l=@max-=i=1] while (c=i*2)<l c+=1 if @buf[c]>(@buf[c+1]||1e9) break if a<=@buf[i]=@buf[c] i=c end @buf[i]=a ret end def dup BinHeap.new(@buf[0..@max-1]) end end n=gets.to_i pq_base=BinHeap.new gets.split.each{|i|pq_base.add(i.to_i<<11)} b=gets.split.map{|i|i.to_i/2<<11} min=1e9 n.times{ pq=pq_base.dup max=0 b.rotate!.each{|e| pq.add(top=pq.get+e+1) top&=0x7FF max=top if max<top break if min<top } min=max if min>max } p min