1. paizaラーニングトップ
  2. レベルアップ問題集
  3. リストメニュー応用編(言語選択)
  4. 問題一覧 Python3編
  5. シャッフルカップ Python3編

リストメニュー応用編のサムネイル
シャッフルカップ Python3編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

あなたは京子ちゃんとシャッフルカップに似たゲームで対決をします。このゲームではまず、ひっくり返した状態で横一列に並んだ N 個のカップと 1 つのボールがあり、左から 1 つめのカップにボールが入っています。 京子ちゃんは Q 回にかけて以下の 2 種類の操作をおこないます。


  1. swap: 左から X, Y 番目の 2 つのカップの順序を入れ替えます。このときカップ内のボールも同時に移動します。

  2. insert: 左から X, Y 番目の 2 つのカップの間に、新たに空のカップを追加します。



あなたは最終的にボールが左から何番目のカップに入っているのか当ててください。

入力される値

N Q
OP_1 X_1 Y_1
OP_2 X_2 Y_2
...
OP_Q X_Q Y_Q


・ 1 行目に、カップの数 N と、操作の回数 Q が与えられます。
・ 2 行目から Q + 1 行目にかけて操作の種類 OP_i と操作で指定する二つのカップ X_i, Y_i が半角スペース区切りで与えられます。 OP_i は 1 または 2 で、 1 の場合は swap, 2 の場合は insert を表します。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

Q 回の操作終了後のボールが入っているカップの位置を出力してください。

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 入力はすべて整数
・ 2 ≦ N ≦ 1,000
・ 1 ≦ Q ≦ 1,000
・ OP_i は 1 または 2
・ 1 ≦ X_i < Y_i ≦ (OP_i の操作直前のカップの数)
・ OP_i が 2 の場合、 X_i + 1 = Y_i

入力例1

3 3
1 2 3
2 2 3
1 2 4

出力例1

1

入力例2

3 5
1 2 3
2 3 4
1 3 5
1 4 5
2 2 3

出力例2

1

問題一覧へ戻る

ページの先頭へ戻る