【CF】Even But Not Even
浏览 1129 | 评论 0 | 字数 3998
TTQ
2020年02月09日
  • 原题链接:https://codeforces.com/contest/1291/problem/A
    • 题目描述

    Let's define a number ebne (even but not even) if and only if its sum of digits is divisible by 2 but the number itself is not divisible by 2. For example, 13, 1227, 185217 are ebne numbers, while 12, 2, 177013, 265918 are not. If you're still unsure what ebne numbers are, you can look at the sample notes for more clarification.

    You are given a non-negative integer s, consisting of n digits. You can delete some digits (they are not necessary consecutive/successive) to make the given number ebne. You cannot change the order of the digits, that is, after deleting the digits the remaining digits collapse. The resulting number shouldn't contain leading zeros. You can delete any number of digits between 0 (do not delete any digits at all) and n−1.

    For example, if you are given s=222373204424185217171912 then one of possible ways to make it ebne is: 222373204424185217171912 → 2237344218521717191. The sum of digits of 2237344218521717191 is equal to 70 and is divisible by 2, but number itself is not divisible by 2:it means that the resulting number is ebne.

    Find any resulting number that is ebne. If it's impossible to create an ebne number from the given number report about it.

    • 输入

    The input consists of multiple test cases. The first line contains a single integer t (1≤t≤1000) — the number of test cases. The description of the test cases follows.

    The first line of each test case contains a single integer n (1≤n≤3000) — the number of digits in the original number.

    The second line of each test case contains a non-negative integer number s, consisting of n digits.

    It is guaranteed that s does not contain leading zeros and the sum of n over all test cases does not exceed 3000.

    • 样例输入
    4
    4
    1227
    1
    0
    6
    177013
    24
    222373204424185217171912
    • 样例输出
    1227
    -1
    17703
    2237344218521717191
    • 提示

    In the first test case of the example, 1227 is already an ebne number (as 1+2+2+7=12, 12 is divisible by 2, while in the same time, 1227 is not divisible by 2) so we don't need to delete any digits. Answers such as 127 and 17 will also be accepted.

    In the second test case of the example, it is clearly impossible to create an ebne number from the given number.

    In the third test case of the example, there are many ebne numbers we can obtain by deleting, for example, 1 digit such as 17703, 77013 or 17013. Answers such as 1701 or 770 will not be accepted as they are not ebne numbers. Answer 013 will not be accepted as it contains leading zeroes.

    • 解释
    • 1+7+7+0+3=18. As 18 is divisible by 2 while 17703 is not divisible by 2, we can see that 17703 is an ebne number. Same with 77013 and 17013;
    • 1+7+0+1=9. Because 9 is not divisible by 2, 1701 is not an ebne number;
    • 7+7+0=14. This time, 14 is divisible by 2 but 770 is also divisible by 2, therefore, 770 is not an ebne number.

    In the last test case of the example, one of many other possible answers is given. Another possible answer is: 222373204424185217171912 → 22237320442418521717191 (delete the last digit).
    这题我把它想得太复杂了,导致无法下手。。。也感谢灰光同学的点拨。。。
    其实这题只要看它的题目要求,它只要求输出各位和为偶数,而组成数字不为偶数的数,至于是原数去掉几个数字得来的并不关心,因此我们只需要把输入的数字从左至右选择两个奇数出来就能满足题意,而两个奇数都选不出来的则一定无解。代码如下:

    #include <cstdio>
    #include <iostream>
    using namespace std;
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            int n,odd=0;
            string out,num;
            cin>>n>>num;
            for(auto i:num)
            {
                if((i-'0')%2==1)
                {
                    odd++;
                    out.push_back(i);
                }
                if(odd>=2)break;
            }
            if(odd>=2)
                cout<<out<<endl;
            else
                cout<<-1<<endl;
        }
        //system("pause");
        return 0;
    }
    
    
    本文作者:TTQ
    本文链接:https://blog.ponder.fun/archives/25.html
    最后修改时间:2020-02-09 18:11:33
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    与本文无关评论请发留言板。请不要水评论,谢谢。
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论