用qsort Design T-Shirt
#include<stdio.h> #include<string.h> #include<stdlib.h> struct NODE { int i; double sum; }T[100000]; int m,n,k; int cmp1(const void *a,const void *b) { if( (*(NODE *)a).sum==(*(NODE *)b).sum) return (*(NODE *)a).i>(*(NODE *)b).i?1:-1; else return (*(NODE *)a).sum<(*(NODE *)b).sum?1:-1; } int cmp2(const void *a,const void *b) { return (*(NODE *)a).i<(*(NODE *)b).i?1:-1; } int main( ) { while(scanf("%d%d%d",&m,&n,&k)!=EOF) { double t; int i,j; memset(T,0,sizeof(T)); for(i=0;i<m;i++) for(j=0;j<n;j++) { scanf("%lf",&t); T[j].sum+=t; T[j].i=j+1; } qsort(T,n,sizeof(T[0]),cmp1); qsort(T,k,sizeof(T[0]),cmp2); for(i=0;i<k;i++) printf(i?" %d":"%d",T[i].i); puts(""); } return 0; }
posted on 2011-05-04 00:49 more think, more gains 阅读(123) 评论(0) 编辑 收藏 举报