Design T-Shirt
#include <stdio.h>
#include <algorithm>
using namespace std;
struct Node
{
int i;
double sum;
}T[10000];
int n,m,k;
bool cmp1(Node a,Node b)
{
if(a.sum== b.sum)
return a.i < b.i; //值按降序,如果相等,标号按升序
return a.sum > b.sum;
}
bool cmp2(Node a,Node b)
{
return a.i > b.i; //标号按升序
}
int main()
{
while(scanf("%d %d %d",&n,&m,&k)!=EOF)
{
int i,j;
double t;
for(i=0;i<m;i++)
{
T[i].sum=0;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%lf",&t);
T[j].sum+= t;
T[j].i=j+1;
}
}
sort(T,T+m,cmp1);
//for(i=0;i<m;i++)
// printf("%.2lf %d\n",T[i].sum, T[i].i);
sort(T,T+k,cmp2);
for(i=0;i<k;i++)
printf(i?" %d":"%d",T[i].i);
puts("");
}
return 0;
}
这道题有点纠结啊。。首先是全英文。其二是两次排序。
posted on 2011-05-04 00:30 more think, more gains 阅读(155) 评论(0) 收藏 举报
浙公网安备 33010602011771号