Решение задачи Домино с Codeforces

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


У Валеры имеется n костей домино, выложенных в ряд. Каждая кость состоит из двух половинок — верхней и нижней. На каждой из половинок записано число от 1 до 6. Валера очень любит четные числа, поэтому он хочет, чтобы сумма чисел, записанных на верхних половинках, и сумма чисел, записанных на нижних половинках, были четными.

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

Код

#include <cstdio>
using namespace std;
 
int n;
int sum1, sum2;
bool was;
 
int main()
{
	scanf("%d", &n);
	while (n--) {
		int a, b; scanf("%d %d", &a, &b);
		if (a % 2 != b % 2) was = true;
		sum1 += a; sum2 += b;
	}
	if (sum1 % 2 != sum2 % 2) printf("-1\n");
	else if (sum1 % 2 == 0) printf("0\n");
	else if (was) printf("1\n");
	else printf("-1\n");
	return 0;
}

         

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



Комментарии

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