1059

xiaoxiao2021-02-28  83

#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #define N 100000 #define e 1e-3 using namespace std; int n,m,s[N]={1,1}; struct stu { char id[10]; int mc,f; }A[N]; bool cmp(struct stu a,struct stu b) { return strcmp(a.id,b.id)<0; } void sushu() { for(int i=1;i<=10000;i++) { if(s[i]==1) continue; for(int j=i*2;j<=10000;j+=i) s[j]=1; } } void find(char aa[]) { int pos=0; int l=1,r=n; if(l==r) pos=n; else while(r-l>=1) { if(r-l==1) { if(strcmp(A[r].id,aa)==0) pos=r; else if(strcmp(A[l].id,aa)==0) pos=l; else pos=0; break; } pos=(l+r)/2; if(strcmp(A[pos].id,aa)==0) break; else if(strcmp(A[pos].id,aa)>0) r=pos; else if(strcmp(A[pos].id,aa)<0) l=pos; } if(strcmp(A[pos].id,aa)==0) { A[pos].f++; } else pos=0; if(A[pos].f>1) printf("%s: Checked\n",aa); else { if(A[pos].mc==1) printf("%s: Mystery Award\n",aa); else if(pos==0) printf("%s: Are you kidding?\n",aa); else if(s[A[pos].mc]==0) printf("%s: Minion\n",aa); else printf("%s: Chocolate\n",aa); } } int main() { sushu(); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%s",&A[i].id); A[i].f=0; A[i].mc=i; } sort(A+1,A+1+n,cmp); scanf("%d",&m); for(int i=1;i<=m;i++) { char p[10]; scanf("%s",p); find(p); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-82948.html

最新回复(0)