概述
codeforces 1196/problem/B
代码如下:
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
int tt;
long a[200000]; //思路是:数出输入的n个数中有多少个奇数,然后用一个数组记录下标,
cin >> tt; //然后将这些 sum 个奇数分为 k 组;每组里面的奇数的个数必须是奇数个, 奇数加奇数 = 偶数
while(tt--) { //最后一组是要打印 n 的
int n,k;
int index[200000];
scanf("%d %d",&n,&k);
int i,sum = 0;
for(i = 0; i < n; i++) {
cin >> a[i];
if(a[i] % 2 == 1) {
index[sum] = i;
sum++;
}
}
if(sum < k) {
cout << "NO" << endl;
} else if(sum == k) {
cout << "YES" << endl;
bool isin = false;
for(i = 0; i < sum-1; i++) {
isin = true;
if(i == 0) {
cout << index[i]+1;
} else {
cout << " " << index[i]+1;
}
}
if(isin){
cout << " " << n ;
} else{
cout << n;
}
cout << endl;
} else if(sum > k) {
int bb = sum-k;
if(bb % 2 == 0) {
cout << "YES" << endl;
bool isin = false;
for(i = 0;i < k-1;i++){
isin = true;
if(i == 0){
cout << index[i]+1;
}else{
cout << " " << index[i]+1;
}
}
if(isin){
cout << " " << n;
}else{
cout << n;
}
cout << endl;
} else {
cout << "NO" << endl;
}
}
}
return 0;
}
最后
以上就是能干吐司为你收集整理的http://codeforces.com/contest/1196/problem/B的全部内容,希望文章能够帮你解决http://codeforces.com/contest/1196/problem/B所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复