南邮NOJ上机系统#2023第一次模拟考试#A天子与诸侯

天子与诸侯

描述:
在周朝,天子分天下而诸侯治天下,但维持诸侯均势是一个令人头痛的问题。

位于镐京的周天子等人开创性的提出,当周天子直属军队的军力大于等于 诸侯中军力前三之和的时候,便可保诸侯均势,天下太平。

现在,周天子手上收集了所有诸侯国的军力数据,希望你能告诉他周天子的军队至少需要多少军力才能维持诸侯均势。

输入:
输入数据共包含两行。

第一行一个整数 n n n,表示诸侯国数量,题目保证 3 ≤ n ≤ 1000 3≤n≤1000 3n1000

第二行 n n n 个整数 P 1 , P 2 , . . . , P n P_1,P_2,...,P_n P1,P2,...,Pn,分别表示每个诸侯国的军力 p p p,题目保证 0 ≤ p ≤ 1 e 8 0≤p≤1e8 0p1e8

输出:
一行一个整数,表示周天子维持诸侯均势的最少军力。

样例输入:

6
12 9 6 100 0 4

样例输出:

121

样例输入:

10
0 0 0 0 0 0 0 0 0 0

样例输出:

0

样例输入:

10
0 0 0 1 9 8 63 0 9 1

样例输出:

81

注释:
对于第一组样例,军力前三的诸侯分别拥有 100,12 和 9 军力,周天子至少需要 121 军力维持均势。

对于第二组样例,军力前三的诸侯都只有 0 军力,因此周天子无需一兵一卒, 0 军力就能维持均势。

关于测试数据:

题目保证,对于 20% 的测试数据, n = 3 n=3 n=3

题目保证,对于 40% 的测试数据, P 1 , P 2 , . . . , P n P_1,P_2,...,P_n P1,P2,...,Pn 将以降序或升序给出。

C++代码实现

#include<iostream>

using namespace std;

int main(){
    int n,p;
    int first=0,second=0,third=0;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>p;
        if(p>first){
            third=second;
            second=first;
            first=p;
        }
        else if(p>second){
            third=second;
            second=p;
        }
        else if(p>third)
            third=p;
    }
    p=first+second+third;
    cout<<p;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值