#include <bits/stdc++.h> #define ll long long #define range(i, n) for (int i = 0; i < n; i++) #define tak cout << "TAK\n"; return; #define nie cout << "NIE\n"; return; using namespace std; void solve() { int n; cin >> n; deque<int> v(n); range(i, n) cin >> v[i]; while (!v.empty()) { if (v[0] != 0) break; v.pop_front(); } for (int i = v.size()-1; i >= 0; i--) { if (v[i] != 0) break; v.pop_back(); } if (v.empty()) { tak } bool zapas = true; v[0]--; for (int i = 1; i < v.size(); i++) { if (v[i-1] > v[i]) { nie } if (v[i-1] == v[i]) { if (i+1 == v.size()) { tak } nie } v[i] -= v[i-1]; v[i-1] = 0; v[i]--; if (!zapas) continue; if (v[i] > 0) v[i]--; else zapas = false; } if (v[v.size()-1] > 0) { nie } tak } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t; cin >> t; while (t--) solve(); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include <bits/stdc++.h> #define ll long long #define range(i, n) for (int i = 0; i < n; i++) #define tak cout << "TAK\n"; return; #define nie cout << "NIE\n"; return; using namespace std; void solve() { int n; cin >> n; deque<int> v(n); range(i, n) cin >> v[i]; while (!v.empty()) { if (v[0] != 0) break; v.pop_front(); } for (int i = v.size()-1; i >= 0; i--) { if (v[i] != 0) break; v.pop_back(); } if (v.empty()) { tak } bool zapas = true; v[0]--; for (int i = 1; i < v.size(); i++) { if (v[i-1] > v[i]) { nie } if (v[i-1] == v[i]) { if (i+1 == v.size()) { tak } nie } v[i] -= v[i-1]; v[i-1] = 0; v[i]--; if (!zapas) continue; if (v[i] > 0) v[i]--; else zapas = false; } if (v[v.size()-1] > 0) { nie } tak } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t; cin >> t; while (t--) solve(); return 0; } |