#include<stdio.h> #include<stdlib.h> #include<string.h> #include<memory.h> #define LEN 2001 struct butcher { char name[20]; char weight[LEN]; int length; }pig[LEN],p; char Sum[LEN+1]={'0'}; int mycmp(const void *a,const void *b) { struct butcher *aa=(struct butcher *)a; struct butcher *bb=(struct butcher *)b; if (aa->length>bb->length) return -1; else if(aa->length<bb->length) return 1; else if(strcmp(aa->weight,bb->weight)>0) return -1; else if(strcmp(aa->weight,bb->weight)<0) return 1; return strcmp(aa->name,bb->name); } void myadd(char *num,int n) { int i,j,t=0,s; for (i=LEN,j=n-1;i>=0&&j>=0;i--,j--) { s=Sum[i]+num[j]-'0'*2+t; Sum[i]=s%10+'0'; t=s/10; } do { s=Sum[i]+t-'0'; Sum[i]=s%10+'0'; t=s/10; i--; } while (t&&i>=0); } int main() { //freopen("in.txt","r",stdin); int n,i; memset(Sum,'0',LEN+1); scanf("%d",&n); for (i=0;i<n;i++) { memset(pig[i].weight,0,LEN); scanf("%s%s",pig[i].name,pig[i].weight); pig[i].length=strlen(pig[i].weight); myadd(pig[i].weight,pig[i].length); } qsort(pig,n,sizeof(p),mycmp); for(i=0;i<n;i++) printf("%s/n",pig[i].name); for(i=LEN-489;i<=LEN;i++) printf("%c",Sum[i]); printf("/n"); return 0; }
[RQNOJ]168 猪王争霸
最新推荐文章于 2017-11-05 11:17:00 发布