結果

問題 No.457 (^^*)
ユーザー ciel
提出日時 2016-12-08 22:28:42
言語 Ruby
(ruby 2.5.0p0)
結果
AC  
実行時間 28 ms
コード長 492 Byte
コンパイル時間 24 ms
使用メモリ 4,404 KB
最終ジャッジ日時 2018-03-18 15:51:08

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
Sample_01.txt AC 7 ms
4,056 KB
Sample_02.txt AC 6 ms
4,052 KB
Sample_03.txt AC 7 ms
4,052 KB
Sample_04.txt AC 7 ms
4,052 KB
Sample_05.txt AC 6 ms
4,052 KB
Sample_06.txt AC 6 ms
4,052 KB
Sample_07.txt AC 7 ms
4,048 KB
Test_1_01.txt AC 9 ms
4,064 KB
Test_1_02.txt AC 10 ms
4,068 KB
Test_1_03.txt AC 11 ms
4,060 KB
Test_1_04.txt AC 19 ms
4,200 KB
Test_1_05.txt AC 28 ms
4,344 KB
Test_2_01.txt AC 25 ms
4,400 KB
Test_2_02.txt AC 28 ms
4,396 KB
Test_2_03.txt AC 15 ms
4,392 KB
Test_2_04.txt AC 26 ms
4,404 KB
Test_2_05.txt AC 16 ms
4,396 KB
Test_2_06.txt AC 27 ms
4,392 KB
Test_2_07.txt AC 6 ms
4,044 KB
Test_2_08.txt AC 7 ms
4,056 KB
テストケース一括ダウンロード

ソースコード

diff #
#!/usr/bin/ruby
def solve(s)
	len=s.size
	al=[]
	ar=[]
	ah=[0]*len
	ast=[]
	len.times{|i|
		if s[i]==?(
			al<<i
		elsif s[i]==?)
			ar<<i
		elsif s[i]==?^
			ah[i]+=1
		elsif s[i]==?*
			ast<<i
		end
	}
	(1...s.size).each{|i|ah[i]+=ah[i-1]}
	ret=0
	al.each{|l|
		hidx=(l...len).bsearch{|i|ah[i]>=ah[l]+2}||len
		st=ast.bsearch{|e|e>=hidx}
		break if !st
		ret+=ar.size-((0...ar.size).bsearch{|i|ar[i]>=st}||ar.size)
	}
	ret
end
s=gets.chomp
puts [solve(s),solve(s.reverse.tr('()',')('))]*' '
0