游客 Signup | Login
中文 | En

3628 - 分苹果0

Jim买了n个苹果给Jack和Sola,现在他想给这两个朋友分苹果。每个苹果不是重100g就是重200g,当然Jim不想

得罪任何一个朋友,因此Jim给两个人苹果的质量必须是一样的,在没有水果刀的情况下,请告诉他,这些苹果

可以被均分吗?

Input

第一行:n (1..100)代表苹果的数量

第二行:w1,w2,...wi:wi代表第i个苹果的质量。

Output

可以均分输出Yes否则输出No。

Examples

Input

3
100 200 100

Output

Yes

Solution C

#include <stdio.h>
int main()
{
	int n,a[10000],i,j,sum;
	while(scanf("%d",&n)!=EOF)
	{
		sum=0;
		for(i=0;i<n;i++)
		scanf("%d",&a[i]);
		for(i=0;i<n;i++)
		{
			if(a[i]==100)
			sum+=1;
			if(a[i]==200)
			sum+=2;
		}
		if(sum%2==0)
		printf("Yes\n");
		else
		printf("No\n");
	}
	return 0;
}

Solution C++

#include <bits/stdc++.h>
using namespace std;
int cmp(int a,int b)
{
	return a>b;
}
int main()
{
	int n;
	while(~scanf("%d",&n)){
		int a[105];
		int sum=0;
		int one=0;
		for (int i=0;i<n;i++){
			scanf("%d",&a[i]);
			a[i]=a[i]/100;
			sum+=a[i];
			if (a[i]==1) one++;
		}
		
		int avr=sum/2;
		
		if (avr!=sum-avr){
			printf("No\n");
			continue;
		}
		
		sort(a,a+n,cmp);
		
		int ss=0;
		while(avr>=a[ss]&&a[ss]==2){
			avr-=a[ss];
			ss++;
		}
		
		if (avr<=one) printf("Yes\n");
		else printf("No\n");
		
	}
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题