第二大价值 OpenJ_Bailian - 4098 (结构体+排序)

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

水果中含有多种营养物质。假设现在要通过营养物质含量多少来评价水果的价值,简单起见,只考虑其中两种营养物质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;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值