Problem:

-->

A: 磯野、あれやろうぜ！ - Sendame -

物語

中島「磯野〜，あれやろうぜ！」

磯野「あれって何だよ，中島」

中島「ほら，あれだよ，あれ．なぜか文字で表さなきゃならないから，説明しづらいな〜」

磯野「いや，図や写真も入れられるみたいだぞ？」

中島「本当だ！」

磯野「で，何をやるんだ？」

中島「ほら，リズムに乗って，手を2回叩いた後に，防御，溜め，攻撃のポーズを取るやつ」

磯野「う〜ん，イマイチわからないな…」

中島「2回手を叩いた後に，例えば防御だったら」

中島「で，溜めだったら」

中島「攻撃だったら」

中島「ってやるやつ，知ってるだろ？」

磯野「ああ！写真が入ると劇的に分かりやすくなるな！」

中島「これぞ文明の進歩だな！」

(それから悠久の時が経った)

花沢「い゛そ゛の゛く゛〜゛ん゛な゛か゛じ゛ま゛く゛〜゛ん゛」

二人「(パチパチ…パチパチ…パチパチ…)」

花沢「アンタたち，まさか寝ながらあれやってるの…！？」

花沢「今勝負ついたじゃない…磯野くん，今あなた勝ったわよ？」

磯野「……花沢さん来てたんだ…中島もう一度やるぞ…zzz」

中島「(こくり)」

二人「(パチパチ…パチパチ…)」

花沢「もう…ここに，あれの勝敗判定ロボット置いておくから…」

そうして花沢さんは去って行った．

ということがあるかもしれないので，あれの勝敗判定プログラムを書いてください．

問題

「あれ」は2人で行うゲームである．リズムに合わせて2人が同時に，防御，溜め，攻撃のいずれかのポーズを取ることを繰り返す．ここで，2人がポーズを取るタイミングのことを「回」と表記する．このゲームでは，ある回で勝敗がつき，かつ，それまでの回で勝敗がついていないとき，その勝敗がゲームの勝敗となる．

2人はそれぞれ「攻撃力」というパラメータを持ち，ゲーム開始時，攻撃力は 0 である．

攻撃のポーズを取った場合，その時点での攻撃力に応じて，次のようになる．

攻撃力が 0 のときに攻撃のポーズを取ると，反則負けとなる．ただし，相手も攻撃力が 0 で攻撃のポーズをした場合，その回では勝敗がつかない．

自分の攻撃力が 1 以上のときに攻撃のポーズをとると，相手に攻撃を加える．また，その回で相手も攻撃のポーズを取った場合，攻撃力のより高いプレイヤーが勝利する．ただし，両プレイヤーが同じ攻撃力で攻撃のポーズを取った場合には，その回では勝敗がつかない．

また，攻撃のポーズを取った回の終了時に，自分の攻撃力が 0 になる．

溜めのポーズを取ると，そのプレイヤーの攻撃力が 1 だけ上昇する．ただし，攻撃力が 5 である場合，そのプレイヤーが溜めのポーズを取っても，攻撃力は 5 のままである．溜めのポーズを取った回で，相手が攻撃を加えた場合，相手が勝利する．なお，溜めのポーズを取った回で，相手が攻撃以外のポーズをとった場合，勝敗がつかない．

防御のポーズを取った回に，相手が攻撃力 5 の攻撃を加えた場合，相手が勝利する．一方，防御のポーズを取った回に，相手が攻撃力 4 以下の攻撃を加えた場合や，溜めまたは防御のポーズを取った場合，その回では勝敗がつかない．なお，防御のポーズを取っても，そのプレイヤーの攻撃力に変化はない．

両プレイヤーのポーズが順に与えられるので，勝敗を出力せよ．なお，両プレイヤーは勝敗が決定した後もポーズをとり続けることがあるが，勝敗が決定した後のポーズは無視するものとする．

入力形式

入力は以下の形式で与えられる．

K
I_1
...
I_K
N_1
...
N_K

入力の1行目には，1個の整数 K ( 1 ≤ K ≤ 100) が与えられる．
2行目からの K 行には，磯野が取ったポーズ I_i (1 ≤ i ≤ K) が順に与えられる．
その直後の K 行には，中島が取ったポーズ N_i (1 ≤ i ≤ K) が順に与えられる．
I_i および N_i は “mamoru”, “tameru”, “kougekida” のいずれかである．これらの文字列は順に，防御，溜め，攻撃のポーズを表す．

出力形式

磯野が勝利した場合には “Isono-kun” ，中島が勝利した場合には “Nakajima-kun” ， K 回で勝敗がつかない場合には， “Hikiwake-kun” と1行で出力せよ．

入力例1

3
tameru
tameru
tameru
tameru
kougekida
tameru

出力例1

Nakajima-kun

2 回目で，磯野が溜めのポーズをしているのに対し，中島は攻撃力 1 の攻撃をしているので，中島の勝利です．

入力例2

3
mamoru
mamoru
mamoru
tameru
tameru
tameru

出力例2

Hikiwake-kun

どちらも攻撃をしなかったので，勝敗がつきませんでした．

入力例3

5
tameru
tameru
mamoru
mamoru
kougekida
tameru
tameru
kougekida
tameru
kougekida

出力例3

Isono-kun

1 回目から 4 回目まででは勝敗がつきません． 5 回目で，両プレイヤーが攻撃のポーズをしていますが，磯野の攻撃力が 2 なのに対し，中島の攻撃力が 1 なので，磯野の勝利です．

入力例4

3
kougekida
kougekida
tameru
kougekida
mamoru
kougekida

出力例4

Nakajima-kun

1 回目では，両プレイヤーが攻撃力 0 で攻撃のポーズを取っているので，勝敗がつきません． 2 回目では，磯野のみが攻撃力 0 で攻撃のポーズをとっているので，中島の勝利です．

入力例5

8
tameru
mamoru
tameru
tameru
tameru
tameru
tameru
kougekida
tameru
kougekida
mamoru
mamoru
mamoru
mamoru
mamoru
mamoru

出力例5

Isono-kun

2 回目では，中島が攻撃力 1 で攻撃のポーズを取っていますが，磯野が防御のポーズを取っているので，勝敗がつきません． 7 回目では，磯野が攻撃力 5 で溜めのポーズを取っているので，磯野の攻撃力は 5 のままです． 8 回目では，磯野が攻撃力 5 で攻撃のポーズをとり，中島が防御のポーズを取っているので，磯野が勝利します．


Sample input:
3
tameru
tameru
tameru
tameru
kougekida
tameru


Sample output:
Nakajima-kun

Submission status: Wrong Answer

Solution code:
K = int(raw_input())
nakaji = isono = 0
for hand1, hand2 in zip([raw_input() for i in xrange(K)], [raw_input() for i in xrange(K)]):
    lose1 = lose2 = False
    if hand1 == "kougekida" and nakaji == 0: lose1 = True
    if hand2 == "kougekida" and isono == 0: lose2 = True
    if lose1 and lose2: continue
    elif lose2:
        print "Isono-kun"
        break
    elif lose1:
        print "Nakajima-kun"
        break

    if hand2 == "tameru": nakaji = min(5, nakaji + 1)
    if hand1 == "tameru": isono = min(5, isono + 1)

    if hand2 == "kougekida":
        if hand1 == "mamoru":
            nakaji = 0
        if hand1 == "tameru":
            print "Nakajima-kun"
            break
        if hand1 == "kougekida":
            if nakaji < isono:
                print "Isono-kun"
                break
            elif nakaji == isono:
                nakaji = isono = 0
            elif nakaji > isono:
                print "Nakajima-kun"
                break
    if hand1 == "kougekida":
        if hand2 == "mamoru":
            isono = 0
        if hand2 == "tameru":
            print "Isono-kun"
            break
else:
    print "Hikiwake-kun"

Submission status: Wrong Answer

Solution code:
K = int(raw_input())
nakaji = isono = 0
for I, N in zip([raw_input() for i in xrange(K)], [raw_input() for i in xrange(K)]):
    lose1 = lose2 = False
    if I == "kougekida" and isono == 0: lose1 = True
    if N == "kougekida" and nakaji == 0: lose2 = True
    if lose1 and lose2: continue
    elif lose1:
        print "Isono-kun"
        break
    elif lose2:
        print "Nakajima-kun"
        break

    if I == "tameru": isono = min(5, isono + 1)
    if N == "tameru": nakaji = min(5, nakaji + 1)

    if I == "kougekida":
        if N == "mamoru":
            if isono == 5:
                print "Isono-kun"
                break
            isono = 0
        if N == "tameru":
            print "Nakajima-kun"
            break
        if N == "kougekida":
            if nakaji < isono:
                print "Isono-kun"
                break
            elif nakaji == isono:
                nakaji = isono = 0
            elif nakaji > isono:
                print "Nakajima-kun"
                break
    if N == "kougekida":
        if I == "mamoru":
            if nakaji == 5:
                print "Nakajima-kun"
                break
            nakaji = 0
        if I == "tameru":
            print "Isono-kun"
            break
else:
    print "Hikiwake-kun"

Submission status: Wrong Answer

Solution code:
K = int(raw_input())
nakaji = isono = 0
for I, N in zip([raw_input() for i in xrange(K)], [raw_input() for i in xrange(K)]):
    lose1 = lose2 = False
    if I == "kougekida" and isono == 0: lose1 = True
    if N == "kougekida" and nakaji == 0: lose2 = True
    if lose1 and lose2: continue
    elif lose1:
        print "Isono-kun"
        break
    elif lose2:
        print "Nakajima-kun"
        break

    if I == "tameru": isono = min(5, isono + 1)
    if N == "tameru": nakaji = min(5, nakaji + 1)

    if I == "kougekida":
        if N == "mamoru":
            if isono == 5:
                print "Isono-kun"
                break
            isono = 0
        if N == "tameru":
            print "Isono-kun"
            break
        if N == "kougekida":
            if nakaji < isono:
                print "Isono-kun"
                break
            elif nakaji == isono:
                nakaji = isono = 0
            elif nakaji > isono:
                print "Nakajima-kun"
                break
    if N == "kougekida":
        if I == "mamoru":
            if nakaji == 5:
                print "Nakajima-kun"
                break
            nakaji = 0
        if I == "tameru":
            print "Nakajima-kun"
            break
else:
    print "Hikiwake-kun"

Submission status: Wrong Answer

Solution code:
n = int(input())
iso = [input() for i in range(n)]
nak = [input() for i in range(n)]
iso_p = 0
nak_p = 0
for i in range(n):
    if iso[i] == "kougekida":
        if iso_p == 0:
            if nak[i] == "kogekida" and nak_p == 0:
                iso_p = 0
            else:
                print("Nakajima-kun")
                quit()
        if iso_p == 5 and nak[i] != "kougekida":
            print("Isono-kun")
            quit()
        if nak[i] == "tameru":
            print("Isono-kun")
            quit()
        if nak[i] == "kougekida":
            if nak_p < iso_p:
                print("Isono-kun")
                quit()
        iso_p = 0
    if nak[i] == "kougekida":
        if nak_p == 0:
            if iso[i] == "kogekida" and iso_p == 0:
                nak_p = 0
            else:
                print("Isono-kun")
                quit()
        if nak_p == 5 and iso[i] != "kougekida":
            print("Nakajima-kun")
            quit()
        if iso[i] == "tameru":
            print("Nakajima-kun")
            quit()
        if iso[i] == "kougekida":
            if iso_p < nak_p:
                print("Nakajima-kun")
                quit()
        nak_p = 0
    if iso[i] == "tameru":
        if iso_p != 5:
            iso_p += 1
    if nak[i] == "tameru":
        if nak_p != 5:
            nak_p += 1
print("Hikiwake-kun")

Submission status: Accepted

Solution code:
K = int(raw_input())
nakaji = isono = 0
for I, N in zip([raw_input() for i in xrange(K)], [raw_input() for i in xrange(K)]):
    lose1 = lose2 = False
    if I == "kougekida" and isono == 0: lose1 = True
    if N == "kougekida" and nakaji == 0: lose2 = True
    if lose1 and lose2: continue
    elif lose1:
        print "Nakajima-kun"
        break
    elif lose2:
        print "Isono-kun"
        break

    if I == "tameru": isono = min(5, isono + 1)
    if N == "tameru": nakaji = min(5, nakaji + 1)

    if I == "kougekida":
        if N == "mamoru":
            if isono == 5:
                print "Isono-kun"
                break
            isono = 0
        if N == "tameru":
            print "Isono-kun"
            break
        if N == "kougekida":
            if nakaji < isono:
                print "Isono-kun"
                break
            elif nakaji == isono:
                nakaji = isono = 0
            elif nakaji > isono:
                print "Nakajima-kun"
                break
    if N == "kougekida":
        if I == "mamoru":
            if nakaji == 5:
                print "Nakajima-kun"
                break
            nakaji = 0
        if I == "tameru":
            print "Nakajima-kun"
            break
else:
    print "Hikiwake-kun"

Submission status: Accepted

Solution code:
K = int(input())
Is = [input() for i in range(K)]
Ns = [input() for i in range(K)]
atk_I = 0
atk_N = 0
#"mamoru", "tameru", "kougekida"
#"Isono-kun", "Nakajima-kun", "Hikiwake-kun"
for i, n in zip(Is, Ns):
	i_n = [i, n]
	if (i_n.count("mamoru") == 2):
		pass
	elif (i_n.count("mamoru") == 1):
		if (i_n.count("tameru") == 1):
			exec("atk_{} += 1".format('I' if i[0] == "t" else 'N'))
			if (atk_I > 5):
				atk_I = 5
			elif (atk_N > 5):
				atk_N = 5
		else:
			if (i[0] == "k"):
				if (atk_I == 5):
					print("Isono-kun")
					exit()
				elif (atk_I == 0):
					print("Nakajima-kun")
					exit()
				else:
					atk_I = 0
			elif (n[0] == "k"):
				if (atk_N == 5):
					print("Nakajima-kun")
					exit()
				elif (atk_N == 0):
					print("Isono-kun")
					exit()
				else:
					atk_N = 0
	else:
		if (i_n.count("kougekida") == 2):
			if (atk_I > atk_N):
				print("Isono-kun")
				exit()
			elif (atk_I == atk_N):
				atk_I = 0
				atk_N = 0
			else:
				print("Nakajima-kun")
				exit()
		elif (i_n.count("kougekida") == 1):
			if (i[0] == "k"):
				if (atk_I == 0):
					print("Nakajima-kun")
					exit()
				else:
					print("Isono-kun")
					exit()
			else:
				if (atk_N == 0):
					print("Isono-kun")
					exit()
				else:
					print("Nakajima-kun")
					exit()
		else:
			atk_I += 1 if atk_I != 5 else 0
			atk_N += 1 if atk_N != 5 else 0
else:
	print("Hikiwake-kun")

Submission status: Accepted

Solution code:
k = int(input())
isono = [input() for _ in range(k)]
nakajima = [input() for _ in range(k)]
isono_power = 0
nakajima_power = 0
for isono_hand, nakajima_hand in zip(isono, nakajima):
  if isono_hand == "mamoru":
    if nakajima_hand == "mamoru":pass
    elif nakajima_hand == "tameru":nakajima_power = min(nakajima_power + 1, 5)
    elif nakajima_hand == "kougekida":
      if nakajima_power <= 0:print("Isono-kun");break
      elif nakajima_power > 5 :print("Nakajima-kun");break
      elif nakajima_power <= 4:nakajima_power = 0
  
  elif isono_hand == "tameru":
    isono_power = min(5, isono_power + 1)
    if nakajima_hand == "mamoru":pass
    elif nakajima_hand == "tameru":nakajima_power = min(nakajima_power + 1, 5)
    elif nakajima_hand == "kougekida":
      if nakajima_power <= 0:print("Isono-kun");break
      else:print("Nakajima-kun");break

  if isono_hand == "kougekida":
    if nakajima_hand == "mamoru":
      if isono_power <= 0:print("Nakajima-kun");break
      elif isono_power >= 5:print("Isono-kun");break
      else:isono_power = 0
    elif nakajima_hand == "tameru":
      if isono_power <= 0:print("Nakajima-kun");break
      else:print("Isono-kun");break
    elif nakajima_hand == "kougekida":
      if isono_power == nakajima_power:isono_power = nakajima_power = 0
      elif isono_power < nakajima_power:print("Nakajima-kun");break
      elif isono_power > nakajima_power:print("Isono-kun");break
else:
  print("Hikiwake-kun")

Submission status: Runtime Error

Solution code:
K = int(input())
Is = [input() for i in range(K)]
Ns = [input() for i in range(K)]
atk_I = 0
atk_N = 0
#"mamoru", "tameru", "kougekida"
#"Isono-kun", "Nakajima-kun", "Hikiwake-kun"
for i, n in zip(Is, Ns):
	i_n = [i, n]
	if (i_n.count("mamoru") == 2):
		pass
	elif (i_n.count("mamoru") == 1):
		if (i_n.count("tameru") == 1):
			exec("atk_{} += 1".format(I if i[0] == "t" else N))
			if (atk_I > 5):
				atk_I = 5
			elif (atk_N > 5):
				atk_N = 5
		else:
			if (i[0] == "k"):
				if (atk_I == 5):
					print("Isono-kun")
					exit()
				elif (atk_I == 0):
					print("Nakajima-kun")
					exit()
				else:
					atk_I = 0
			elif (n[0] == "k"):
				if (atk_N == 5):
					print("Nakajima-kun")
					exit()
				elif (atk_N == 0):
					print("Isono-kun")
					exit()
				else:
					atk_N = 0
	else:
		if (i_n.count("kougekida") == 2):
			if (atk_I > atk_N):
				print("Isono-kun")
				exit()
			elif (atk_I == atk_N):
				atk_I = 0
				atk_N = 0
			else:
				print("Nakajima-kun")
				exit()
		elif (i_n.count("kougekida") == 1):
			if (i[0] == "k"):
				if (atk_I == 0):
					print("Nakajima-kun")
					exit()
				else:
					print("Isono-kun")
					exit()
			else:
				if (atk_N == 0):
					print("Isono-kun")
					exit()
				else:
					print("Nakajima-kun")
					exit()
		else:
			atk_I += 1 if atk_I != 5 else 0
			atk_N += 1 if atk_N != 5 else 0
else:
	print("Hikiwake-kun")