AT_xmascontest2015_f FILO Sort

Description

[problemUrl]: https://atcoder.jp/contests/xmascontest2015noon/tasks/xmascontest2015_f $ (1,\ 2,\ ...,\ N) $ の順列 $ a_i $ と $ Q $ 個のクエリが与えられる。$ i $ 番目のクエリの内容は、$ x_i $ が与えられるので数列の $ x_i $ 番目と $ x_i+1 $ 番目の要素の値を入れ替える、というクエリである。 クエリで数列が変更されるたびに、それが**良い数列**となっているか判定せよ。ただし良い数列は以下のように定義される数列である。 $ 3 $ つの[スタック](https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF)を考える。それぞれを stack1、stack2、stack3 と呼ぶことにする。最初に、stack1 に $ a_1,\ a_2,\ ...,\ a_n $ をこの順に push する。その後、 - stack1 から pop し、pop した整数を $ x $ とする。$ x $ を stack2 に push する。 - stack2 から pop し、pop した整数を $ x $ とする。$ x $ を stack3 に push する。 という $ 2 $ 種類の動作を好きなように行い、stack3 の要素を先頭から見た時 $ 1,\ 2,\ ...,\ N $ となるように出来るとき、$ a_i $ は良い数列である。 ただし、push とはスタックの末尾に要素を追加する動作、pop はスタックの末尾から要素を取り出す動作のことを指す。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ a_1 $ $ a_2 $ $ a_3 $ ... $ a_N $ $ Q $ $ x_1 $ $ x_2 $ : $ x_Q $ - $ 1 $ 行目には順列の長さ $ N(2\ ≦\ N\ ≦\ 100,000) $ が与えられる。 - $ 2 $ 行目には数列 $ a_i $ が空白区切りで与えられる - $ 3 $ 行目にはクエリの個数 $ Q(1\ ≦\ Q\ ≦\ 100,000) $ が与えられる。 - 続く $ Q $ 行にはクエリの内容を表す整数 $ x_i\ (1\ ≦\ x_i\ ≦\ N-1) $ が与えられる。

Output Format

出力は標準出力に行い、末尾に改行を入れること。 出力は $ Q $ 行からなる。 $ i $ 行目には、$ i $ 番目のクエリの後に $ a_i $ が良い数列となっているならば `Yes`、そうでなければ `No` と出力せよ。