hdoj 1031 Design T-Shirt(排序)

这题不难,用好排序函数就ok。

有个细节就是我在cmp1函数里讨论a.sum和b.sum相等的情况是根据index的大小进行排序的。

其实事实上,不用这个处理也行,因为如果存在sum值相同,index不同的情况,默认排序就是index更小的在前面。。。

#include<iostream>
#include<algorithm>
using namespace std;
typedef struct py
{
	double sum,index;
}py;

bool cmp1(const py &a,const py &b)
{
	if(a.sum==b.sum)
	{
		return a.index<b.index;
	}
	else
	return a.sum>b.sum;
}
bool cmp2(const py &a,const py &b)
{
	return a.index>b.index;
}
	
    py p[2000];
int main()
{
    double a; 
    int n,m,k,i,j;	
    while(cin>>n>>m>>k)
     {
     	for(i=0;i<2000;i++)
     	{
	     	p[i].sum=0;
	     	p[i].index=i;
	     }
     	for(i=1;i<=n;i++)
           for(j=1;j<=m;j++)
            {
            	cin>>a;
            	p[j].sum+=a;
            }
     
        
         sort(p+1,p+1+m,cmp1);
         sort(p+1,p+1+k,cmp2);
         for(i=1;i<k;i++)
         {
         	cout<<p[i].index<<" ";
         }
         cout<<p[i].index<<endl;
     }
     return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值