uva 10474 Where is the Marble?(大理石在哪儿)
题目大意:
有n个大理石,每个大理石上写一个非负整数,首先把各数按照从小到大排序,问Q个问题每个问题问是否一个大理石写着一个数X,如果有,回答那个大理石写着X。
题解:
就排序查找就行,我觉得二分更快,懒得写0.0,
#include<stdio.h> #include<algorithm> using namespace std; const int maxn=10000000; int a[maxn]; int main(){ int x,y; int T=1; while(~scanf("%d%d",&x,&y)&&x&&y){ printf("CASE# %d:\n",T++); for(int i=0;i<x;i++){ scanf("%d",&a[i]); } sort(a,a+x); for(int i=0;i<y;i++){ int flag=0; int t; scanf("%d",&t); int j; for(j=0;j<x;j++){ if(a[j]==t){ printf("%d found at %d\n",t,j+1); flag=1; break; } } if(flag==0) printf("%d not found\n",t); } } return 0; }