Решение задачи Спортивный программист с Codeforces

Без пояснения   Просмотров: 23


Боб — спортивный программист. Он хочет стать красным, и для этого ему нужен строгий режим тренировок. Боб решил пойти на ежегодную встречу гроссмейстеров и спросить n из них, сколько они тренировались, чтобы стать красными.

«Я потратил xi часов на решение задач», — ответил i-й гроссмейстер.

Боб решил потренировать свои навыки математики, поэтому для каждого ответа он записал одно целое число — количество минут (60⋅xi), поблагодарил гроссмейстеров и пошел домой. Боб мог писать числа с лидирующими нулями — например, если гроссмейстер сказал, что ему потребовалось потратить 2 часа, Боб мог написать 000120 вместо 120.

Алиса решила разыграть Боба — она нашла записанные им числа, и для каждого из них сделала следующее (независимо от остальных чисел):

либо перемешала все цифры числа,
либо записала случайное число.
Таким образом Алиса получила n чисел, которые мы обозначим как y1, ..., yn.

Для каждого из этих чисел помогите Бобу определить, может ли yi быть результатом перемешивания числа (возможно, имеющего лидирующие нули), кратного 60.

Код

#include <bits/stdc++.h>
using namespace std;

int main() {
	int q;
	cin >> q;
	while (q--) {
	string s;
	cin >> s;
	int sum = 0, b = 0, c = 0;
	for (int i = 0; i < s.size(); i++) {
		sum += s[i] - '0';
		if((s[i] - '0') % 2 == 0)
			b++;
		if (s[i] == '0')
			c++;
	}
	cerr << sum << endl;
	if (sum % 3 == 0 && b > 1 && c)
		cout << "red";
	else
		cout << "cyan";
	cout << endl;
	}
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться