水果中含有多种营养物质。假设现在要通过营养物质含量多少来评价水果的价值,简单起见,只考虑其中两种营养物质A和B。给定一种水果A和B的含量a和b,用a+b的值作为该水果的价值。给定一组水果,要求这组水果中价值第二大的那个水果。
Input
第一行为m,表示有m组测试输入,m<100。
每组测试数据第一行为N,表示有N种水果,接着的N行每行三个非负整数,分别是水果ID、该水果的a和b。
(2<=N<=50)(输入保证没有价值相同的水果)
Output
输出价值第二大的水果ID以及对应的a、b和价值,共4个非负整数,中间用一个空格隔开。
Sample Input
1 3 1 1 1 2 2 4 3 3 2
Sample Output
3 3 2 5
/* Bailian4098 第二大价值 */
#include <bits/stdc++.h>
using namespace std;
const int N = 50;
struct Node {
int id, a, b;
} a[N];
bool cmp(Node &a, Node &b)
{
return a.a + a.b > b.a + b.b;
}
int main()
{
int m, n;
scanf("%d", &m);
while(m--) {
scanf("%d", &n);
for(int i = 0; i < n; i++)
scanf("%d%d%d", &a[i].id, &a[i].a, &a[i].b);
sort(a, a + n, cmp);
printf("%d %d %d %d\n", a[1].id, a[1].a, a[1].b, a[1].a + a[1].b);
}
return 0;
}

本文介绍了一个简单的算法,用于根据水果中两种营养物质A和B的含量来计算水果的价值,并找出价值第二高的水果。通过定义水果的价值为这两种营养物质含量之和,使用C++实现排序算法确定次高价值的水果。
631

被折叠的 条评论
为什么被折叠?



