003 - 値をさがせ
時間制限 1 秒 / メモリ制限 256 MB / 得点 100 / x 5 /
問題
YDKは、要素数 $N$ の整数からなる数列 $A$ = { $a_1$, $a_2$, ... $a_N$ } をもっています。
この数列は昇順に整列されています。
$A$ に整数 $d$ が含まれるかどうかの質問が $Q$ 個与えられるので、各質問に "Yes"か"No"かで答えてください。
入出力形式
入力
1行目に、数列の要素数 $N$ と 質問の個数 $Q$ が空白区切りで与えられる。
続いて、$N$ 個の $A$ の要素 $a_i$ (1 ≤ $i$ ≤ $N$) が空白区切りで与えられる。
以下、$Q$ 行にわたって $A$ に含まれるかどうかを調べる数 $d_j$ (1 ≤ $j$ ≤ $Q$) が与えられる。
N Q a1 a2 ... aN d1 d2 : dQ
出力
各 $d$ について、 $A$ に含まれるなら "Yes", 含まれなければ "No" を出力して改行せよ。
制約
- 1 ≤ $N$ ≤ 3,000,000
- 1 ≤ $Q$ ≤ 100,000
- -1,000,000,000 ≤ $a_i$, $d_j$ ≤ 1,000,000,000
- $A$ は昇順に整列されている。
部分点
- $N$,$Q$ ≤ 1000 を満たすテストケースに正解すると、配点の 20% がもらえる。
- 上の条件とは別に、0 ≤ $a_i$ ≤ 1,000,000 を満たすテストケースに正解しても、配点の 20% がもらえる。
入出力例
入力例1
6 3 2 3 5 7 11 13 7 9 13
出力例1
Yes No Yes
入力例2
3 5 -65536 -32768 -128 128 -123456789 -32768 0 64
出力例2
No No Yes No No
備考
[注意] この問題は、通常のcin, cout を使用するとTLEになります。
次の命令を記述することで cin, cout が高速になります。
int main() { cin.tie(NULL); ios::sync_with_stdio(false); }
6月14日(木) 18:50 配点がおかしかったので修正して Rejudge しました。