zoukankan      html  css  js  c++  java
  • Codeforces Round #577 (Div. 2) B

    Codeforces Round #577 (Div. 2)

    B - Zero Array

    You are given an array a1,a2,…,an.

    In one operation you can choose two elements ai and aj (i≠j) and decrease each of them by one.

    You need to check whether it is possible to make all the elements equal to zero or not.

    Input

    The first line contains a single integer n (2≤n≤105) — the size of the array.

    The second line contains n integers a1,a2,…,an (1≤ai≤109) — the elements of the array.

    Output

    Print "YES" if it is possible to make all elements zero, otherwise print "NO".

    Examples

    input

    4

    1 1 2 2

    output

    YES

    input

    6

    1 2 3 4 5 6

    output

    NO

    Note

    In the first example, you can make all elements equal to zero in 3 operations:

    • Decrease a1 and a2,
    • Decrease a3 and a4,
    • Decrease a3 and a4

    In the second example, one can show that it is impossible to make all elements equal to zero.

     

    题意:题目意思是给你n个数,你可以进行任意次操作:对序列里的两个数都减一,

    问你最后能不能把序列n个数都变成0。

    思路:显然如果n个数的总和是奇数,肯定不能把n个数都变0。

    还有就是序列中最大的数比总和的一半还大,即最大值的两倍大于总和,

    这也是不行的,因为就算你拿另外n-1个数对最大值去操作,最后这个数还是不会变0,

    然后其他情况都是可以的。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<algorithm>
     6 #include<map>
     7 #include<set>
     8 #include<vector>
     9 #include<queue>
    10 #include<list>
    11 //#include<unordered_map>
    12 #include<stack>
    13 using namespace std;
    14 #define ll long long 
    15 const int mod=1e9+7;
    16 const int inf=1e9+7;
    17  
    18 const int maxn=1e5+10;
    19  
    20 int main()
    21 {
    22     ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    23     
    24     int n;
    25     cin>>n;
    26     ll int num;
    27     ll int maxx=-1,sum;
    28     for(int i=0;i<n;i++)
    29     {
    30         cin>>num;
    31         sum+=num;
    32         
    33         if(num>maxx)
    34             maxx=num;
    35     }
    36     
    37     if(sum&1||maxx*2>sum)
    38         return cout<<"NO"<<endl,0;
    39     else
    40         return cout<<"YES"<<endl,0;
    41     
    42     return 0;
    43 }
    大佬见笑,,
  • 相关阅读:
    SCILAB简介[z]
    UG OPEN API编程基础 2约定及编程初步
    Office 2003与Office 2010不能共存的解决方案
    UG OPEN API 编程基础 3用户界面接口
    NewtonRaphson method
    UG OPEN API编程基础 13MenuScript应用
    UG OPEN API编程基础 14API、UIStyler及MenuScript联合开发
    UG OPEN API编程基础 4部件文件的相关操作
    UG OPEN API编程基础 1概述
    16 UG Open的MFC应用
  • 原文地址:https://www.cnblogs.com/xwl3109377858/p/11305984.html
Copyright © 2011-2022 走看看