codeforces 1291A Even But Not Even 模拟

https://vjudge.net/problem/CodeForces-1291A
在这里插入图片描述在这里插入图片描述题目大意:给一个仅由数字构成的字符串,你可以删除任意个字符,问是否可以使这个数字为奇数且这个数字的各位之和位偶数。
思路:简单模拟,从最后一位向前删减直到最后一位为奇数,然后计算各位 s u m sum ,若 s u m sum 为偶数还需要判断奇数个数是否 > = 2 >=2

#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;
}

发布了677 篇原创文章 · 获赞 30 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/xiji333/article/details/104222738
今日推荐