您的位置:首页 > 其它

HDU 1031 Design T-Shirt

2017-04-26 15:00 423 查看
查看原题

题意

输入nmk,n个人分别对m样东西进行打分,从中选出k样得分最高的,再对这k样东西的序号从大到小输出

思路

代码

#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
struct n{
int id;float score=0;
}num[300];
bool cmp(struct n a, struct n b){
return a.score>b.score;
}
bool cmpid(struct n a, struct n b){
return a.id>b.id;
}
int main(int argc, char *argv[])
{
int n,m,k;
while(cin>>n>>m>>k){
memset(num,0, sizeof(num));
float temp;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>temp;
num[j].score+=temp;
num[j].id=j;
}
}
sort(num+1,num+m+1,cmp);
sort(num+1,num+k+1,cmpid);
for(int i=1;i<k;i++){
cout<<num[i].id<<" ";
}
cout<<num[k].id<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: