Domino(아날로그)

3060 단어 dom
A. Domino
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Valera has got n domino pieces in a row. Each piece consists of two halves — the upper one and the lower one. Each of the halves contains a number from 1 to 6. Valera loves even integers very much, so he wants the sum of the numbers on the upper halves and the sum of the numbers on the lower halves to be even.
To do that, Valera can rotate the dominoes by 180 degrees. After the rotation the upper and the lower halves swap places. This action takes one second. Help Valera find out the minimum time he must spend rotating dominoes to make his wish come true.
Input
The first line contains integer n (1 ≤ n ≤ 100), denoting the number of dominoes Valera has. Next n lines contain two space-separated integers xi, yi (1 ≤ xi, yi ≤ 6). Number xi is initially written on the upper half of the i-th domino, yi is initially written on the lower half.
Output
Print a single number — the minimum required number of seconds. If Valera can't do the task in any time, print  - 1.
Sample test(s)
input
2
4 2
6 4

output
0

input
1
2 3

output
-1

input
3
1 4
2 3
4 4

output
1

Note
In the first test case the sum of the numbers on the upper halves equals 10 and the sum of the numbers on the lower halves equals 6. Both numbers are even, so Valera doesn't required to do anything.
In the second sample Valera has only one piece of domino. It is written 3 on the one of its halves, therefore one of the sums will always be odd.
In the third case Valera can rotate the first piece, and after that the sum on the upper halves will be equal to 10, and the sum on the lower halves will be equal to 8.
 
제목:
N(1에서 100) 쌍의 숫자를 제시하고 다른 왼쪽의 수와 오른쪽의 수를 모두 짝수로 하면 특정한 쌍의 교환 위치를 통해 조건을 만족시킬 수 있다. 가장 작은 교환 횟수를 출력할 수 있다. 만약에 그 자체가 조건을 만족시켰다면 0을 출력하고 도저히 달성할 수 없다면 -1을 출력할 수 있다.
 
생각:
좌우 반이 어떤 수든지 간에 총수를 합치면 세 가지 상황밖에 없다.1. 양쪽 모두 짝수 2.양쪽 다 홀수 3.한쪽은 홀수이고, 한쪽은 짝수이다.상황은 1은 0을 출력하고, 상황은 3은 -1을 출력한다.상황 2에는 두 가지 상황이 있는데 대수가 하나의 홀수이고 하나의 짝수라면 교환 1회를 통해 조건을 충족시키고 1을 출력할 수 있다.만약 이런 쌍수가 존재하지 않는다면, 어떻게 교환해도 조건을 만족시킬 수 없다. 출력-1.
어쨌든 출력의 결과는 3가지 가능성밖에 없다. 1,-1,0.
 
   AC:
#include<stdio.h>
int main()
{
	int n,i;
	int le=0,ri=0,di=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
	  int a,b;
	  scanf("%d%d",&a,&b);
	  if((a+b)%2) di=1;
	  le+=a;
	  ri+=b;
	}
	if(!(le%2)&&!(ri%2))  printf("%d
",0); else if((le+ri)%2) printf("%d
",-1); else printf("%d
",di?1:-1); return 0; }

 
요약:
생각이 뚜렷하지 않고 생각이 깊고 자세하지 못하다.
 

좋은 웹페이지 즐겨찾기