poj 1002 487-3279

来源:互联网 发布:2017最新交友软件 编辑:程序博客网 时间:2024/06/06 18:55

http://poj.org/problem?id=1002

一开始char数组长度30时WA,改成200就通过了。


1128K 579MS

#include <iostream><span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;">  </span></span>#include <algorithm>#include <string.h>using namespace std;struct phone_number{char num[10];}pn[100005];char map[26] = {'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7',0,'7','7','8','8','8','9','9','9',0};char s[200];int amt,flag;int cmp(struct phone_number &pn1,struct phone_number &pn2){return strcmp(pn1.num,pn2.num)<0;}int main(){int i,j,k;scanf("%d",&amt);for(i=0;i<amt;i++){scanf("%s",s);k=0;for(j=0;j<strlen(s);j++){if(s[j]=='-'||s[j]=='Q'||s[j]=='Z') continue;if(s[j]>='A'&&s[j]<='Z')pn[i].num[k++]=map[s[j]-'A'];else pn[i].num[k++]=s[j];if(k==3) pn[i].num[k++]='-';}}sort(pn,pn+amt,cmp);k=1;for(i=0;i<amt;i++){if(strcmp(pn[i].num,pn[i+1].num)==0){k++;}else{if(k>1){printf("%s %d\n",pn[i].num,k);flag=1;}k=1;}}if(flag==0) printf("No duplicates.\n");return 0;}



0 0
原创粉丝点击