九度OJ 08浙大真题之《魔咒词典》
2013-03-08 16:27
381 查看
题目地址:http://ac.jobdu.com/problem.php?pid=1029
#include<stdio.h> #include<string.h> #include<stdlib.h> #define MAXS 100002 typedef struct E{ char name[22]; char op[82]; }E; E dict1[MAXS],dict2[MAXS]; int cmp1(const void *a,const void *b) { E *aa=(E *)a,*bb=(E *)b; return strcmp(aa->name,bb->name); } int cmp2(const void *a,const void *b) { E *aa=(E *)a,*bb=(E *)b; return strcmp(aa->op,bb->op); } int suc,flag; int main() { int N,l,count,i,j,k,mid,temp; char now[105]; for(i=1;i<=MAXS;i++) { gets(now); l=strlen(now); while(now[l]=='\0'||now[l]=='\n')l--; now[++l]='\0'; if(now[0]=='@')break; for(j=0;now[j]!=']';j++); now[++j]='\0'; strcpy(dict1[i].name,now); strcpy(dict1[i].op,now+j+1); dict2[i]=dict1[i]; } for(count=i+1;dict1[count].name[0]=='\0';count--); qsort(dict1,++count,sizeof(dict1[0]),cmp1); qsort(dict2,count,sizeof(dict2[0]),cmp2); scanf("%d",&N);getchar(); while(N--) { suc=flag=0; gets(now); if(now[0]=='[') { i=1;j=count-1; while(i<=j) { mid=(i+j)>>1; if((temp=strcmp(now,dict1[mid].name))==0) { suc=mid; flag=1; break; } if(temp>0)i=mid+1; else j=mid-1; } if(flag)puts(dict1[suc].op); else puts("what?"); } else { i=1;j=count-1; while(i<=j) { mid=(i+j)>>1; if((temp=strcmp(now,dict2[mid].op))==0) { strcpy(now,dict2[mid].name); l=strlen(now)-1; for(k=1;k<l;k++)now[k-1]=now[k]; now[--k]='\0'; suc=mid; flag=1; break; } if(temp>0)i=mid+1; else j=mid-1; } if(flag)puts(now); else puts("what?"); } } return 0; }
相关文章推荐
- 九度OJ 1022 07浙大真题之《游船出租》——题目错误,鉴定完毕!
- 九度OJ 1035 09浙大真题之优先队列堆排序之《寻找大富翁》
- 九度考研真题 浙大 2006-2浙大 统计同成绩人数 hash
- 【九度OJ】1027【欧拉回路】【C实现】【浙大2008】
- 九度考研真题 浙大 2006-3浙大 简单计算器 堆操作
- Is It A Tree?,判断是否是一棵树。(题目来源:九度OJ 1481,2012年北京大学计算机研究生机试真题)
- 九度OJ 1107 搬水果 -- 哈夫曼树 2011年吉林大学计算机研究生机试真题
- 【九度OJ】1031【模拟】【C实现】【浙大2009】
- 九度考研真题 浙大 2007-1浙大 题目1021:统计字符 字符串输入
- 九度考研真题 浙大 2010-1浙大1003:A+B
- 九度OJ 1107 搬水果 -- 哈夫曼树 2011年吉林大学计算机研究生机试真题
- 九度考研真题 浙大 2007-2浙大 题目1020:最小长方形 取最大最小值
- 九度考研真题 浙大 2007-3浙大游船出租 结构体
- 九度考研真题 浙大 2010-2浙大1006:ZOJ问题
- 九度考研真题 浙大 2007-浙大1023:EXCEL排序 排序
- 九度考研真题 浙大 2011-1浙大1001:A+B for Matrices
- 九度考研真题 浙大 2008-2浙大 题目1029:魔咒词典 字符串比较
- 九度考研真题 浙大 2011-2浙大1002:Grading
- 九度考研真题 浙大 2008-3浙大1028:继续畅通工程
- 九度考研真题 浙大 2011-3浙大1004:Median