#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; } |
English