10420 - List of Conquests
来源:互联网 发布:导演做什么知乎 编辑:程序博客网 时间:2024/04/29 10:04
#include <cstdio>#include <cstring>#include <cstdlib>typedef struct{ char Sum[100]; int count;} Str;int cmp(const void *p1,const void *p2){ return strcmp(((Str*)p1)->Sum,((Str*)p2)->Sum);}int main(){ Str s[2010]; int n,i,j,num; char str1[1000],str2[1000]; char Name[2010][100]; scanf("%d",&n); i=num=0; getchar(); memset(Name,0,sizeof(Name)); while(i<n) { memset(s[i].Sum,0,sizeof(s[i].Sum)); s[i].count=0; memset(str1,0,sizeof(str1)); memset(str2,0,sizeof(str2)); scanf("%s",str1); gets(str2); if(i==0) { strcpy(s[0].Sum,str1); strcpy(Name[0],str2); s[0].count=1; num++; } else for(j=0; j<=i; j++) if(strcmp(s[j].Sum,str1)==0&&strcmp(Name[j],str2)!=0) { s[j].count++; break; } else if(strcmp(s[j].Sum,str1)!=0&&s[j].count==0) { num++; strcpy(s[j].Sum,str1); strcpy(Name[j],str2); s[j].count=1; break; } i++; } //if(s[j].count!=0)j=j+1; qsort(s,num,sizeof(Str),cmp); for(i=0; i<num; i++) printf("%s %d\n",s[i].Sum,s[i].count); return 0;}