fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. // Проверка: является ли число палиндромом без использования string
  8. bool isPalindrome(int num) {
  9. if (num < 0) num = -num; // abs
  10. if (num < 10) return true;
  11.  
  12. long long original = num;
  13. long long reversedNum = 0;
  14. while (num > 0) {
  15. reversedNum = reversedNum * 10 + (num % 10);
  16. num /= 10;
  17. }
  18. return original == reversedNum;
  19. }
  20.  
  21. // Проверка: есть ли в числе хотя бы одна нечетная цифра
  22. bool hasOddDigit(int num) {
  23. if (num == 0) return false;
  24. if (num < 0) num = -num;
  25.  
  26. while (num > 0) {
  27. if ((num % 10) % 2 != 0) return true;
  28. num /= 10;
  29. }
  30. return false;
  31. }
  32.  
  33. int main() {
  34. // Ускорение ввода-вывода
  35. ios_base::sync_with_stdio(false);
  36. cin.tie(NULL);
  37.  
  38. int n;
  39. if (!(cin >> n)) return 0; // Если ввод пуст
  40.  
  41. if (n <= 0 || n > 16) {
  42. // Просто выходим или обрабатываем по условию задачи
  43. return 0;
  44. }
  45.  
  46. vector<int> arr;
  47. for (int i = 0; i < n; ++i) {
  48. int num;
  49. if (cin >> num) {
  50. arr.push_back(num);
  51. }
  52. }
  53.  
  54. // Удаление элементов
  55. auto it = remove_if(arr.begin(), arr.end(), [](int num) {
  56. return isPalindrome(num) && hasOddDigit(num);
  57. });
  58. arr.erase(it, arr.end());
  59.  
  60. // Вывод результата
  61. for (size_t i = 0; i < arr.size(); ++i) {
  62. cout << arr[i] << (i == arr.size() - 1 ? "" : " ");
  63. }
  64. cout << endl;
  65.  
  66. return 0;
  67. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty