torus711 のアレ

主に競技プログラミングの問題について書きます

Codeforces #162, Division 2, A : Colorful Stones (Simplified Edition)

概要

三色の石が一列に並んでおり、一番端の石の上に Liss が立っている。
Liss に色の sequence からなる支持を出す。
Liss は、指示一つ毎に、自分の居る石の色と指示の色が一致していれば、一つ進む。
それ以外の場合はその場に留まる。
全ての指示を受理し終わったあとの、Liss のいる場所を答えよ。

解法

そのままシミュレーション

コード

import Control.Applicative
import Control.Monad
import Data.List

main = do
	s <- getLine
	t <- getLine
	print $ solve s t 1

solve :: String -> String -> Int -> Int
solve [] _ cur = cur
solve _ [] cur = cur
solve s@(a:as) (b:bs) cur
	| a == b = solve as bs ( cur + 1 )
	| otherwise = solve s bs cur