結果

問題 No.33 アメーバがたくさん
ユーザー ciel
提出日時 2015-10-29 02:19:41
言語 Ruby
(ruby 2.5.3p57)
結果
AC  
実行時間 12 ms
コード長 836 Byte
コンパイル時間 23 ms
使用メモリ 8,920 KB
最終ジャッジ日時 2019-04-20 03:52:50

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
1.txt AC 12 ms
8,912 KB
2.txt AC 11 ms
8,920 KB
3.txt AC 12 ms
6,868 KB
4.txt AC 11 ms
6,868 KB
5.txt AC 12 ms
6,868 KB
6.txt AC 12 ms
6,872 KB
7.txt AC 12 ms
6,872 KB
8.txt AC 12 ms
6,868 KB
9.txt AC 11 ms
6,872 KB
10.txt AC 11 ms
6,868 KB
99_challenge01.txt AC 11 ms
6,872 KB
テストケース一括ダウンロード
コンパイルメッセージ
Main.rb:35: warning: assigned but unused variable - k
Main.rb:30: warning: assigned but unused variable - n
Syntax OK

ソースコード

diff #
#!/usr/bin/ruby
def checkio(data)
	result=0
	se=[]
	data.each{|l,r|
		right_idx=(0...se.size).bsearch{|i|([l,0]<=>se[i])<=0}||se.size #l <= se[right][0]
		if right_idx!=0
			left_idx=right_idx-1
			if l<=se[left_idx][1] # overlap with left
				l=se[left_idx][0]
				r=[r,se[left_idx][1]].max
				result-=se[left_idx][1]-se[left_idx][0]+1
				se.delete_at(left_idx)
				right_idx-=1
			end
		end
		while right_idx<se.size && se[right_idx][0]<=r # overlap with right
			r=[r,se[right_idx][1]].max
			result-=se[right_idx][1]-se[right_idx][0]+1
			se.delete_at(right_idx)
		end
		result+=r-l+1
		se.insert(right_idx,[l,r])
	}
	return result
end

if __FILE__ == $0
	dic=Hash.new{|h,k|h[k]=[]}
	n,d,t=gets.split.map(&:to_i)
	gets.split.map(&:to_i).each{|e|
		mod=e%d
		dic[mod]<<[e/d-t,(e/d+t)]
	}
	p dic.reduce(0){|s,(k,v)|s+checkio(v)}
end
0