Where is the Marble? UVA - 10474

2019-02-11  本文已影响17人  HeoLis

https://vjudge.net/problem/UVA-10474

#include <cstdio>
#include <algorithm>

using namespace std;

int main() {
    const int maxn = 10000;
    int n, q, x, kase = 0;
    int num[maxn];

    while (scanf("%d%d", &n, &q) == 2 && n) {
        printf("CASE# %d:\n", ++kase);
        for (int i = 0; i < n; ++i)
            scanf("%d", &num[i]);
        sort(num, num + n); // 排序
        while (q--) {
            scanf("%d", &x);
            int p = lower_bound(num, num + n, x) - num; // 在已排序数组num中寻找x
            if (num[p] == x)
                printf("%d found at %d\n", x, p + 1);
            else
                printf("%d not found\n", x);
        }
    }
    return 0;
}

lower_bound函数查找“大于等于x的第一个位置”

int p = lower_bound(num, num + n, x) - num; // 在已排序数组num中寻找x

sort(v.begin, v.end())排序

上一篇 下一篇

猜你喜欢

热点阅读