Решение задачи "Честная игра" с Codeforces

Без пояснения   Просмотров: 10


Петя и Вася решили сыграть в игру. Для этого у них есть n карточек ( n — чётное число), на каждой из которых записано одно целое число.

До игры Петя выберет одно целое число, а затем Вася — другое целое число (отличное от числа, которое выбрал Петя). В ходе игры они заберут себе все карточки, на которых записаны выбранные ими числа. К примеру, если до игры Петя выбрал число 5, то он заберёт себе все карточки, на которых записано число 5, если Вася выбрал число 10, то он заберёт себе все карточки, на которых записано число 10.

Игра считается честной, если Петя и Вася забрали себе все n карточек, при этом каждый из них забрал поровну карточек.

Определите, могут ли Петя и Вася выбрать до игры числа таким образом, чтобы игра была честной.

Код

#include<bits/stdc++.h>
using namespace std;
int n,a[2000],b,c,k;
int main()
{
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		if(b==0)
			b=a[i];
		else if(c==0&&a[i]!=b)
			c=a[i];
		else if(a[i]!=b&&a[i]!=c)
		{
			cout<<"NO";
			return 0;
		}
		if(a[i]==b)
			k++;
		if(a[i]==c)
			k--;
	}
	if(k)
		cout<<"NO";
	else
		cout<<"YES"<<endl<<b<<' '<<c;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться