Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics) 比赛人数5260
[codeforces 1323A] Even Subset Sum Problem 奇+奇=偶,奇+偶=奇,偶+偶=偶
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址https://codeforces.ml/contest/1323/problem/A
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
A - Even Subset Sum Problem | GNU C++11 | Accepted | 15 ms | 0 KB |
奇+奇=偶,奇+偶=奇,偶+偶=偶
上面这个知识点,这段时间考了好几次,详见上面的总目录
核心思路不变,该题还是稍微花了些时间进行编写,两点:
一是记录两个奇数出现位置;二是设置查找标识,找到,flag==1,否则0.
AC如下
#include <stdio.h>
int a[105];
int main(){
int t,i,n,pre,now,flag;//记录两个奇数,pre记录第一次出现位置,now记录第二次出现位置
scanf("%d",&t);
while(t--){
flag=0,pre=0;
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",&a[i]);
for(i=1;i<=n;i++){
if(a[i]%2==0){
printf("1\n");
printf("%d\n",i);
flag=1;
break;
}else if(!pre){
pre=i;//pre记录第一次奇数出现位置
}else {
now=i;//now记录第二次出现奇数位置
flag=1;
printf("2\n");
printf("%d %d\n",pre,now);
break;
}
}
if(flag==0)printf("-1\n");
}
return 0;
}