結果

問題 No.457 (^^*)
ユーザー ciel
提出日時 2016-12-08 22:28:42
言語 Ruby
(2.4.1)
結果
AC  
実行時間 36 ms
コード長 492 Byte
コンパイル時間 23 ms
使用メモリ 4504 KB

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
Sample_01.txt AC 10 ms
4104 KB
Sample_02.txt AC 11 ms
4104 KB
Sample_03.txt AC 10 ms
4104 KB
Sample_04.txt AC 8 ms
4100 KB
Sample_05.txt AC 10 ms
4108 KB
Sample_06.txt AC 9 ms
4108 KB
Sample_07.txt AC 8 ms
4104 KB
Test_1_01.txt AC 12 ms
4144 KB
Test_1_02.txt AC 12 ms
4148 KB
Test_1_03.txt AC 15 ms
4164 KB
Test_1_04.txt AC 20 ms
4296 KB
Test_1_05.txt AC 33 ms
4432 KB
Test_2_01.txt AC 31 ms
4500 KB
Test_2_02.txt AC 36 ms
4484 KB
Test_2_03.txt AC 18 ms
4492 KB
Test_2_04.txt AC 30 ms
4504 KB
Test_2_05.txt AC 18 ms
4480 KB
Test_2_06.txt AC 34 ms
4492 KB
Test_2_07.txt AC 9 ms
4108 KB
Test_2_08.txt AC 9 ms
4104 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