напиши на c++
Creado el: 6 de diciembre de 2025
Respondido usando GPT-5.1 Thinking por Chat01
Creado el: 6 de diciembre de 2025
Respondido usando GPT-5.1 Thinking por Chat01
напиши на c++
cpp#include <bits/stdc++.h> using namespace std; // Обмен цифр. Проверяем, можно ли одной перестановкой двух цифр // сделать число кратным 11. int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t; // номер теста (не используется в решении) if (!(cin >> t)) return 0; int k; cin >> k; while (k--) { string s; cin >> s; int n = (int)s.size(); // Одной цифры недостаточно, чтобы что-то менять if (n == 1) { cout << "no\n"; continue; } // X = сумма цифр на нечетных позициях - на четных (1-based) int X = 0; for (int i = 0; i < n; ++i) { int d = s[i] - '0'; if (i % 2 == 0) X += d; // позиция i+1 нечетная else X -= d; // позиция i+1 четная } X %= 11; if (X < 0) X += 11; // Если число уже кратно 11 и длина >= 2, всегда можно // переставить какую-то пару цифр (в т.ч. одинаковых). if (X == 0) { cout << "yes\n"; continue; } // Нужно менять цифры разных четностей позиций. int cntOdd[10] = {0}; // цифры на нечетных позициях int cntEven[10] = {0}; // цифры на четных позициях for (int i = 0; i < n; ++i) { int d = s[i] - '0'; if (i % 2 == 0) cntOdd[d]++; else cntEven[d]++; } bool ok = false; // Подбираем цифры d1 (нечетная позиция) и d2 (четная), // такие что после обмена X + 2*(d2 - d1) ≡ 0 (mod 11). for (int d1 = 1; d1 <= 9 && !ok; ++d1) if (cntOdd[d1]) { for (int d2 = 1; d2 <= 9; ++d2) if (cntEven[d2]) { int val = X + 2 * (d2 - d1); val %= 11; if (val < 0) val += 11; if (val == 0) { ok = true; break; } } } cout << (ok ? "yes\n" : "no\n"); } return 0; }