Codeforces Round #446 (Div. 2) A. Greed

来源:互联网 发布:淘宝app图标双11 编辑:程序博客网 时间:2024/06/14 12:02
A. Greed
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

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!

Input

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.

Output

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).

Examples
input
23 53 6
output
YES
input
36 8 96 10 12
output
NO
input
50 0 5 0 01 1 8 10 5
output
YES
input
44 1 0 35 2 2 3
output
YES
Note

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 0x7fffffffusing 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 = 0temp = nq = input().split()for obj in q :ans = ans + int(obj)#print("cin is complate")temp = nmaxx = maxxx = -999999999999q = input().split()for obj in q:test = int(obj)if maxx < test:if maxxx < maxx:maxxx = maxxmaxx = testelif 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");}}



原创粉丝点击