10282 - Babelfish(***)

来源:互联网 发布:网络拓扑生成工具 编辑:程序博客网 时间:2024/06/05 05:09
/*思路:快速排序,二分查找*/#include <cstdio>#include <cstdlib>#include <cstring>struct node{char eng[20];char fore[20];}dic[100010];int cmp(const void *a,const void *b){node *pa=(node *)a;node *pb=(node *)b;return strcmp(pa->fore,pb->fore);}int search(char *a,int len){int left=0,right=len-1,mid;bool ok=false;while(left<=right){mid=(left+right)/2;if(strcmp(a,dic[mid].fore)>0)left=mid+1;else if(strcmp(a,dic[mid].fore)<0)right=mid-1;else {ok=true;break;}}if(ok)return mid;elsereturn -1;}int main(){//freopen("data.in","r",stdin);int u=0;char s[40];while(1){fgets(s,sizeof(s),stdin);if(strcmp(s,"\n")==0)break;sscanf(s,"%s %s",dic[u].eng,dic[u].fore);u++;}qsort(dic,u,sizeof(dic[0]),cmp);char word[20];while(scanf("%s",word)==1){int v=search(word,u);if(v==-1)printf("eh\n");elseprintf("%s\n",dic[v].eng);}return 0;}


原创粉丝点击