Codeforces Round #616 (Div. 2) A.Even But Not Even

A. Even But Not Even(传送门)
题意
定义一个数ebne,当且仅当它的各位上的数字和可以被2整除,但是这个数本身不能被2整除(即个位数为奇数)。

你将获得一个字符串,判断删除0个或多个数字后 它能否变成ebne

其实这个字符串中只要有两个或以上的奇数 就很容易能得到一个ebne
例如:2321124 它的一个ebne数为31

对于2446826 这样一个全由偶数组成的数 显然不符合题意

对于 2446827 这样只有一位数上为奇数的数 显然也不符合题意
所以我们只要找到字符串中的两个奇数 并输出就可以AC
下面附上代码

#include
using namespace std;
int main()
{
	int t;cin >> t;
	while (t--)
	{
		int n;cin >> n;
		string a;cin >> a;
		int num1 = 0, num2 = 0;
		for (int i = 0;i < n;i++)
		{
			if ((a[i] - '0') & 1 && !num1)
				num1 = a[i] - '0';
			else
				if ((a[i] - '0') & 1 && num1)
					num2 = a[i] - '0';
			if (num1 && num2)
			{
				cout << num1 << num2 << endl;
				break;
			}
		}
		if (!num1 || !num2)cout << -1 << endl;
	}
	return 0}

你可能感兴趣的:(codeforces,c++)