算典05_例题_01_UVA-10474

来源:互联网 发布:清理恶意软件 编辑:程序博客网 时间:2024/06/06 04:01

Where is the Marble

题意

    输入一组整数,排序之后找某数在数组中的位置

题解

    水题。这一章主要是练习STL的用法,这题算是敲门砖。用sort排序,用lower_bound()查找即可

#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int maxn = 1e5 + 5;const int INF = (1<<31)-1;#define met(a, b) memset(a, b, sizeof(a));#define IN freopen("in.txt", "r", stdin);typedef long long LL;int n, q, a[maxn], b;int main(){    #ifdef _LOCAL    IN;    #endif // _LOCAL    int kase = 0;    while(scanf("%d%d", &n, &q) == 2) {        if(!n && !q) break;        for(int i = 0; i < n; ++i) scanf("%d", &a[i]);        sort(a, a+n);        printf("CASE# %d:\n", ++kase);        while(q--) {            scanf("%d", &b);            int ans = lower_bound(a, a+n, b) - a;            if(ans < n && a[ans] == b) printf("%d found at %d\n", b, ans+1);            else printf("%d not found\n", b);        }    }    return 0;}
0 0