题目大意:嗯让我想想怎么描述……大体来说你在做游戏,对方给你一串数字,你要把这些数字从小到大排好顺序,之后再让你找出给定数字的位置,如果数字有重复,就输出最靠前的位置。
然后,似乎没什么坑的(最难过的是完全没想过sort就可以了……害得我WA了三次要哭了……)
题目链接:戳我戳我哈哈哈
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define maxn 10005
using namespace std;
int a[maxn],b[maxn],c[maxn];
int main(void)
{
int m,n;
int kase=1;
while(~scanf("%d%d",&n,&m))
{
memset(b,0,sizeof(b));
memset(a,0,sizeof(a));
memset(c,0,sizeof(c));
if(n==0&&m==0)
break;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
for(int i=0;i<n;i++)//开了个数组直接把每个数字的位置存了下来
{
if(b[a[i]]==0)
b[a[i]]=i+1;
}
for(int i=0;i<m;i++)
{
scanf("%d",&c[i]);
}
printf("CASE# %d:\n",kase++);
for(int i=0;i<m;i++)
{
if(b[c[i]]==0)
printf("%d not found\n",c[i]);
else
printf("%d found at %d\n",c[i],b[c[i]]);
}
}
return 0;
}
呼呼