由于疫情原因21年9月的CF没法考…就耽误打卡了
emm重拾原因呢,是有个可爱的姑娘偶然问我一题,才想起自己还有这事,下面直接给代码;
#include<iostream>
int a[102];
int b[102];
int f[102][200002];
using namespace std;
int main() {
std::ios::sync_with_stdio(false);
int n;
cin >> n;
int sum = 0;
int minx = 1;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
sum += a[i];
int t = a[i];
while (!(t%2))
{
b[i]++;
t /= 2;
}
if (b[i] < b[minx])
minx = i;
}
if (sum % 2 )
{
cout << 0;
return 0;
}
int m = sum / 2;
f[0][0] = 1;
for (int i = 1; i <= n; i++)
for (int j = 0;j<=m;j++)
{
f[i][j] |= f[i - 1][j];
if(j>=a[i]) f[i][j] |= f[i - 1][j - a[i]];
}
if (f[n][m]==0)
{
cout << 0;
return 0;
}
else
{
cout << 1 << endl;
cout << minx << endl;
}
return 0;
}
这篇本来写好的草稿一直忘发…分析过程以后补叭