Greed
CodeForces - 892AJafar has n cans of cola. Each can is described by two integers: remaining volume of colaai and can's capacitybi (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 integersa1,?a2,?...,?an (0?≤?ai?≤?109) — volume of remaining cola in cans.
The third line contains n space-separated integers thatb1,?b2,?...,?bn (ai?≤?bi?≤?109) — capacities of the cans.
Print "YES" (without quotes) if it is possible to pour all remaining cola in2 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
#include <stdio.h>
#include <stdlib.h>int main() {int t,i,n;long long a,b,c,d,m = 0;scanf("%d",&n);for(i = 0;i < n;i++){scanf("%lld",&a);m += a;}for(i = 0;i < n;i++){scanf("%lld",&b);if(i == 0)c = b;else if(i == 1){d = b;if(c > d){t = c,c = d;d = t;}}else{if(b > c)c = b;if(c > d){t = c,c = d;d = t;}}}n = c + d;if(n < m)printf("NO\n");elseprintf("YES\n");return 0;
}