您的位置:首页 > 其它

BestCoder27 1001.Jump and Jump... (hdu 5162) 解题报告

2015-01-25 12:53 155 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5162

题目意思:有 n 个 kid,每个 kid 有三个成绩 a, b, c。选最大的一个成绩作为这个 kid 的最终成绩。然后根据每个 kid 的最终成绩,对他们进行排名。

赛中写得比较丑陋,这个还比较顺眼。。。。呵呵

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;

const int maxn = 5 + 2;
struct node
{
int id;
int score;
bool operator < (const node &a) const {
return score > a.score;
}
}kid[maxn];
int ans[maxn];

int main()
{
int t, n, in;
while (scanf("%d", &t) != EOF) {
while (t--) {
memset(ans, 0, sizeof(ans));
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int maxx = -1;
for (int j = 0; j < 3; j++) {
scanf("%d", &in);
maxx = max(maxx, in);
}
kid[i].id = i+1;
kid[i].score = maxx;
}
sort(kid, kid+n);
for (int i = 0; i < n; i++)
ans[kid[i].id] = i+1;
for (int i = 1; i <= n; i++)
printf("%d%c", ans[i], i == n ? '\n' : ' ');
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: