zoukankan      html  css  js  c++  java
  • codeforces 892 A题 Greed

    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
    2
    3 5
    3 6
    Output
    YES
    Input
    3
    6 8 9
    6 10 12
    Output
    NO
    Input
    5
    0 0 5 0 0
    1 1 8 10 5
    Output
    YES
    Input
    4
    4 1 0 3
    5 2 2 3
    Output
    YES
    Note

    In the first sample, there are already 2 cans, so the answer is "YES".

    题意:有 n 瓶可乐 , 然后每瓶可乐都有剩余的可乐 和 不同的容量 , 问能不能把所有剩余的可乐倒在 两个可乐瓶子里。

    思路:累加可乐剩余的体积 , 找出 最大的两个可乐的 容量和  , 比较

    #include <iostream>
    #include <algorithm>
    
    using namespace std ; 
    
    #define maxn 101000
    #define LL long long 
     
    int main(){
        int n ; 
        LL num[maxn] ; 
        LL sum[maxn] ; 
        while(~scanf("%d" , &n)){
            
        LL summ = 0 ;  
            for(int i=1 ; i<= n ; i++){
                scanf("%lld" , &num[i]) ; 
                summ += num[i] ; 
            } 
            
            for(int i=1 ; i<=n ; i++){
                scanf("%lld" , &sum[i]) ; 
            } 
        
            sort(sum+1 , sum+1+n ) ; 
            if(summ <= sum[n] + sum[n-1]) {
                printf("YES
    ") ; 
            } else {
                printf("NO
    ") ; 
            }
        
        } 
        return 0 ; 
    } 
  • 相关阅读:
    多线程下单例模式:懒加载(延迟加载)和即时加载
    Java 线程同步
    java 多线程之wait(),notify,notifyAll(),yield()
    序列化和反序列化及线程实现方式
    错题解析
    错题解析
    考试:错题总结
    测试:错题总结
    hashCode与equals的区别与联系
    @Not
  • 原文地址:https://www.cnblogs.com/yi-ye-zhi-qiu/p/7865741.html
Copyright © 2011-2022 走看看