您的位置:首页 > 其它

UVA - 10474 Where is the Marble?

2016-07-08 16:13 573 查看
题目大意:输入 N 个数和 Q 个数,求这 Q 个数分别是 N 中从小到大数的第几个,如果不在 N 中,输出 not found。

解题思路:排序后判断。数组开太小 RE 了一次。以后开数组还是豪气一点比较好- -

#include<iostream>
#include<cstdio>
#include<string.h>
#include<stdlib.h>
using namespace std;
int a[10000];
int count = 0;
int cmp(const void *a, const void *b){
return *(int*)a-*(int*)b;
}
int main() {
int N, Q;
while(scanf("%d%d", &N, &Q) != EOF && N && Q) {
memset (a, 0, sizeof(a));
for (int i = 0; i < N; i++)
scanf("%d", &a[i]);
qsort(a, N, sizeof(int), cmp);
printf("CASE# %d:\n", ++count);
while (Q--) {
int x, tag = 0;
scanf("%d", &x);
for(int i = 0; i < N; i++)
if(x == a[i]) {
printf("%d found at %d\n", x, i+1);
tag = 1; break;
}
if (!tag) printf("%d not found\n", x);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uva