CodeForces-1201B (思维题)

题目:

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

In one operation you can choose two elements aiai and ajaj (i≠ji≠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 nn (2≤n≤1052≤n≤105) — the size of the array.

The second line contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤1091≤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 33 operations:

  • Decrease a1a1 and a2a2,
  • Decrease a3a3 and a4a4,
  • Decrease a3a3 and a4a4

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

 

思路:因为是成对成对的减少,所以总数首先是偶数。其次还要满足最大的数小于等于总数的一半,这样才能保证最大的数消去(类似于鸽巢原理)。

AC代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
using namespace std;
ll n;
ll sum;
int main()
{
	while(scanf("%lld",&n)!=EOF){
	sum=0;
	ll i,j,ans=0;
	for(i=1;i<=n;i++)
	{
		scanf("%lld",&j);
		sum+=j;
		ans=max(ans,j);
	}
	if(sum%2==0&&ans<=sum/2)
	{
		printf("YES\n");
	}
	else printf("NO\n");
	}
    return 0;
}

 

你可能感兴趣的:(思维)