#include <iostream>
#include <string>
#include <algorithm>
bool P(int value)
{
std::string left = std::to_string(value);
std::reverse(left.begin(), left.end());
std::string right = std::to_string(value);;
return left == right;
}
int main()
{
int n;
std::cin >> n;
int count = 0;
for (int i = 1; i <= n; ++i)
{
if (P(i))
{
count++;
}
}
std::cout << "Count palindrome: " << count << std::endl;
return 0;
}
Брагин и Лиходеев.
Объяснение:
1) Допустим, что преступление совершено Кургиным и Лиходеевым.
Тогда оба утверждения Кургина («Лиходеев не виновен. Преступление совершил Брагин») ложны ( В рассматриваемом случае истинны утверждения: "Лиходеев виновен. Брагин преступления не совершал"). Но, по условию, если Кургин преступник, то одно его утверждение должно быть ложно, а второе - истинно. Мы пришли к противоречию. Значит, наше предположение о виновности Кургина и Лиходеева неверно.
2) Допустим, что преступление совершено Брагиным и Лиходеевым.
Тогда в показаниях Брагин есть одно истинное утверждение («Это сделал Лиходеев») и одно ложное («Я не делал этого»). В показаниях Лиходеева также есть истинное утверждение («но и Кургин тут ни при чём») и ложное («Я не виноват»). Противоречий с условием задачи нет.
3) Допустим, что преступление совершено Кургиным и Брагиным.
Тогда оба утверждения Брагина («Я не делал этого. Это сделал Лиходеев») ложны ( В рассматриваемом случае истинны утверждения: "Лиходеев не виновен. Брагин преступление совершил"). Но, по условию, если Брагин преступник, то одно его утверждение должно быть ложно, а второе - истинно. Мы пришли к противоречию. Значит, наше предположение о виновности Кургина и Брагина неверно.