链接:https://ac.nowcoder.com/acm/problem/25867
来源:牛客网

题目描述
又是一年省赛,喆神收拾各种算法书要去打比赛了,但他最多只能背两个背包,而算法书分散在好几个背包里(zhe神有钱),他想知道,最后是否能够把所有的书都放在两个背包里。
输入描述:
第一行一个数n,表示背包的数量。(0 <= n <=100)
第二行n个数ai,分别表示每个背包里的书的个数。(0 <= ai <= 10000)
第三行n个数bi,分别表示每个背包的背包容量。(0 <= bi <= 10000)
输出描述:
如果可以把所有的书放在两个背包里,输出“YES”(没有引号)
否则,输出“NO”
示例1
输入
复制
2
3 5
3 6
输出
复制
YES

代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <math.h>

using namespace std;


int main()
{
    int n = 0;
    cin >> n;
    int a[105]; int ans = 0; int sum = 0;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        sum += a[i];
    }
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    sort(a + 1, a + n + 1);
    if (n >= 1)
    {
        ans = a[n - 1] + a[n];
    }
    if (ans > sum)
    {
        cout << "YES";
    }
    else cout << "NO";
    return 0;
}