1059

来源:互联网 发布:高胜算交易策略 知乎 编辑:程序博客网 时间:2024/05/31 19:18
#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#define N 100000#define e 1e-3using 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;} 
0 0
原创粉丝点击