提出 #7886543


ソースコード 拡げる

S, T = gets.chomp, gets.chomp

I = [nil]*('z'.ord-'a'.ord+1)
IS = [nil]*S.size
S.chars.reverse_each.with_index{|c,i|
	c, i = c.ord-'a'.ord, S.size-1-i
	IS[i], I[c] = I[c], i
}

ICache = [nil]*('z'.ord-'a'.ord+1)
p T.each_char.inject(0){|i,c|
	id, im, c = i/S.size*S.size, i%S.size, c.ord-'a'.ord
	ic = (ICache[c]&&ICache[c]<=im) ? ICache[c] : I[c]
	break -1 unless ic
	ic = IS[ic] while ic && ic < im
	ic = ic.nil? ? id+S.size+I[c] : id+ic
	ICache[c] = ic%S.size
	next ic+1
}

提出情報

提出日時
問題 E - Strings of Impurity
ユーザ ds14050
言語 Ruby (2.3.3)
得点 500
コード長 495 Byte
結果 AC
実行時間 432 ms
メモリ 10364 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 45
セット名 テストケース
Sample a01, a02, a03
All a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45
ケース名 結果 実行時間 メモリ
a01 AC 7 ms 1788 KiB
a02 AC 7 ms 1788 KiB
a03 AC 7 ms 1916 KiB
b04 AC 7 ms 1788 KiB
b05 AC 7 ms 1788 KiB
b06 AC 7 ms 1788 KiB
b07 AC 7 ms 1788 KiB
b08 AC 7 ms 1788 KiB
b09 AC 7 ms 1788 KiB
b10 AC 126 ms 10364 KiB
b11 AC 138 ms 10364 KiB
b12 AC 136 ms 10364 KiB
b13 AC 130 ms 10364 KiB
b14 AC 129 ms 10364 KiB
b15 AC 134 ms 10364 KiB
b16 AC 134 ms 10364 KiB
b17 AC 201 ms 10364 KiB
b18 AC 193 ms 10364 KiB
b19 AC 192 ms 10364 KiB
b20 AC 254 ms 10364 KiB
b21 AC 226 ms 10364 KiB
b22 AC 213 ms 10364 KiB
b23 AC 268 ms 10364 KiB
b24 AC 224 ms 10364 KiB
b25 AC 432 ms 10364 KiB
b26 AC 359 ms 10364 KiB
b27 AC 258 ms 10364 KiB
b28 AC 209 ms 10364 KiB
b29 AC 164 ms 10364 KiB
b30 AC 164 ms 10364 KiB
b31 AC 63 ms 10364 KiB
b32 AC 74 ms 2044 KiB
b33 AC 41 ms 1916 KiB
b34 AC 63 ms 10236 KiB
b35 AC 63 ms 10236 KiB
b36 AC 139 ms 10364 KiB
b37 AC 142 ms 10364 KiB
b38 AC 142 ms 10364 KiB
b39 AC 137 ms 10364 KiB
b40 AC 142 ms 10364 KiB
b41 AC 132 ms 10364 KiB
b42 AC 63 ms 10364 KiB
b43 AC 63 ms 10364 KiB
b44 AC 140 ms 10364 KiB
b45 AC 142 ms 10364 KiB