https://vjudge.net/problem/UVA-10474
キーポイントは、kの最初の要素である、反復子を返し:主な用途はLOWER_BOUNDの実践です。しかし、また、非常に簡単に要素を見つけるためにソートされた必要性を見つけます。
単語の入力と出力の内部CIN、cは良いがいないようですが、変更したくありません。
1の#include <ビット/ STDC ++ H> 2 3 の#define N 100010 4 の#define MAXN 200010 5 6 使用して 名前空間STDを、 7 8 typedefの長い 長い int型LL。 9 10 のint main()の 11 { 12 ベクター< INT > A。 13 ベクトル< int型 > ::イテレータITE。 14 INT N、I、Q、NUM。 15 、I = 0 。 16 しばらく(CIN >> N >> Q、N || Q){ 17 a.clear()。 // 清空容器 18 ながら(N-- ){ 19 CIN >> NUM。 20 a.push_back(NUM)。 21 } 22 ソート(a.begin()、a.end())。 23 int型のX; 24 のprintf(" CASE#1%のD:\ n "、++ I)。 25 一方(q-- ){ 26 CIN >> X。 27 ITE = LOWER_BOUND(a.begin()、a.end()、x)は、 28 もし(* ITE == X){ 29 のprintf(" %dは%dで見出さ\ n "、X、ITE-a.begin()+ 1 )。 30 } 31 他のprintf(" %dは\ nは見つかりません" X、); 32 } 33 } 34 リターン 0 。 35 }