Jafar has n cans of cola. Each can is described by two integers: remaining volume of cola ai and can's capacity bi (ai ≤ bi).
Jafar has decided to pour all remaining cola into just 2 cans, determine if he can do this or not!
The first line of the input contains one integer n (2 ≤ n ≤ 100 000) — number of cola cans.
The second line contains n space-separated integers a1, a2, ..., an (0 ≤ ai ≤ 109) — volume of remaining cola in cans.
The third line contains n space-separated integers that b1, b2, ..., bn (ai ≤ bi ≤ 109) — capacities of the cans.
Print "YES" (without quotes) if it is possible to pour all remaining cola in 2 cans. Otherwise print "NO" (without quotes).
You can print each letter in any case (upper or lower).
2 3 5 3 6
YES
3 6 8 9 6 10 12
NO
5 0 0 5 0 0 1 1 8 10 5
YES
4 4 1 0 3 5 2 2 3
YES
In the first sample, there are already 2 cans, so the answer is "YES".
这道题还是很简单的 给你一堆数字表示和 然后问你能不能用下面的两个桶装 当然是用最大的两个桶子~~
是一个练习语言的题目~~
#include <iostream>
#include <string>
#include <cstring>
#include <stdio.h>
#include <algorithm>
#define inf 0x7fffffff
using namespace std;
const static int N = 1e6 + 10;
typedef long long ll;
int array[N];
int main()
{
int n, m, temp;
while (cin >> n) {
ll ans = 0;
for (int i = 0; i < n; i ++) {
cin >> temp; ans += temp;
}
int min , minn;
min = minn = -inf;
for (int i = 0 ; i < n; i ++) {
scanf("%d",&temp);
if(min < temp) {
minn = max(minn , min);
min = temp;
} else if (minn < temp) {
minn = temp;
}
}
if(ans > min + minn) puts("no");
else puts("yes");
}
}
然后在附上一个python写的版本 但是很奇怪 python写的比c++ 写的块
而且 PyPy的和Python写的效率也是迷 有时候PyPy快 有时候Python更快 如果你知道也可以告诉我下~
n = int(input())
ans = 0
temp = n
q = input().split()
for obj in q :
ans = ans + int(obj)
#print("cin is complate")
temp = n
maxx = maxxx = -999999999999
q = input().split()
for obj in q:
test = int(obj)
if maxx < test:
if maxxx < maxx:
maxxx = maxx
maxx = test
elif maxxx < test:
maxxx = test
#print("cin later is complate")
#print("ans = %d maxx = %d maxxx = %d" % (ans , maxx , maxxx))
if ans <= maxx + maxxx :
print("yes")
else :
print("no")
还有一个java版本 java的版本比上两种语言慢
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Scanner stdin = new Scanner(System.in);
int n, temp , max ,maxx;
long ans = 0;
n = stdin.nextInt();
for (int i = 0; i < n; i ++) {
temp = stdin.nextInt();
ans += temp;
}
max = maxx = -999999999;
for (int i = 0; i < n; i ++) {
temp = stdin.nextInt();
if(max < temp) {
if(maxx < max) maxx = max;
max = temp;
} else if (maxx < temp) {
maxx = temp;
}
}
if(ans <= max + maxx) System.out.print("yes");
else System.out.print("no");
}
}