https://vjudge.net/problem/CodeForces-1291A
题目大意:给一个仅由数字构成的字符串,你可以删除任意个字符,问是否可以使这个数字为奇数且这个数字的各位之和位偶数。
思路:简单模拟,从最后一位向前删减直到最后一位为奇数,然后计算各位
,若
为偶数还需要判断奇数个数是否
。
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int t,n;
char s[3005];
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
scanf("%s",s+1);
while(n&&(s[n]-'0')%2==0)
--n;
int sum=0,idx=0;
for(int i=1;i<n;i++)
{
sum+=s[i]-'0';
if((s[i]-'0')&1)
idx=i;
}
sum+=s[n]-'0';
if(n&&(sum&1==0||idx))
{
for(int i=1;i<=n;i++)
{
if(i==idx&&sum&1)
continue;
putchar(s[i]);
}
putchar('\n');
}
else
printf("-1\n");
}
return 0;
}