UVA 10474 Where is the Marble?
很水的一题。直接从小到大排序好,然后看要找哪个,找过去找出位置即可。。。
还有一种方法,计数排序时间复杂度更低。。不过这题数据量不大没问题
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int n, m;
int a[10005], b[10005];
int main()
{
int t = 1;
while (scanf("%d%d", &n, &m) != EOF && n && m)
{
for (int i = 0; i < n; i ++)
scanf("%d", &a[i]);
for (int i = 0; i < m; i ++)
scanf("%d", &b[i]);
sort(a, a + n);
printf("CASE# %d:\n", t ++);
for (int i = 0; i < m ; i ++)
{
int j;
for (j = 0; j < n; j ++)
{
if (b[i] == a[j])
{
printf("%d found at %d\n", b[i], j + 1);
break;
}
}
if (j == n)
printf("%d not found\n", b[i]);
}
}
return 0;
}