BNUOJ-4716题 IQ test
网站 https://www.bnuoj.com/v3/problem_show.php?pid=4716
Bob is preparing to pass IQ test. The most frequent task in thistest is to find out which one of the given n numbers differs from the others. Bobobserved 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 inevenness.
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, notexceeding 100. It is guaranteed, that exactly one of these numbers differs fromthe others in evenness.
Output
Output index of number that differs from the others in evenness.Numbers are numbered from 1 in the input order.
Sample Input
Input
5
2 4 7 8 10
Output
3
Input
4
1 2 1 1
Output
2
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
int n,i,j,e,o,flag1,flag2,a;
scanf("%d",&n);
flag1=0;
flag2=0;
e=o=0;
for(i=0;i<n;i++)
{
scanf("%d",&a);
if(a%2==1)
{
e++;
if(!flag1)
{
flag1=i+1;
}
}
else
{
o++;
if(!flag2) flag2=i+1;
}
}
if(e==1) // 按题意只有2种情况,1)输入的数字中只有一个奇数的情况,
//2)输入的数字中只有一个偶数
printf("%d\n",flag1);
else printf("%d\n",flag2);
}
/* 题目说 找出输入的数中 比较特别的一个 并输出它的序号
英语战5渣渣的我看题后,以为是等差数列 。。。。
wa了几次,求助队友,才理解题意,下次争取一次就通过,不要再错了*/