白银组第三次第一题

IQ test CodeForces - 25A

Bob is preparing to pass IQ test. The most frequent task in this test is to find out which one of the given n numbers differs from the others. Bob observed that one number usually differs from the others in evenness. Help Bob — to check his answers, he needs a program that among the given n numbers finds one that is different in evenness.
Input
The first line contains integer n (3 ≤ n ≤ 100) — amount of numbers in the task. The second line contains n space-separated natural numbers, not exceeding 100. It is guaranteed, that exactly one of these numbers differs from the others in evenness.
Output
Output index of number that differs from the others in evenness. Numbers are numbered from 1 in the input order.
Examples
Input
5
2 4 7 8 10
Output
3
Input
4
1 2 1 1
Output
2

#include <iostream>
using namespace std;

int main()
{
	int n;
	while (cin >> n)
	{
		int j = 0, a = 0, b = 0;
		int *array = new int[n];


		for (int i = 0; i < n; i++)
			cin >> array[i];
		for (j = 0; j < n; j++)
		{
			if (array[j] % 2 == 0)
			{
				a++;
			}
			if (array[j] % 2 != 0)
			{
				b++;
			}
			if (a > b&&b==1)
			{
				for (;; j--)
				{
					if (array[j] % 2 != 0)
					{
						cout << j+1 << endl;
						break;
					}
				}
				break;
			}
			if (b > a&&a==1)
			{
				for (;; j--)
				{
					if (array[j] % 2 == 0)
					{
						cout << j+1 << endl;
						break;
					}
				}
				break;
			}
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43981207/article/details/85174012