#include <bits/stdc++.h>
#define pb push_back
#define f first
#define s second
#define ll long long
#define dbg(x) cerr << #x << ": " << x << "\n"
#define mp make_pair
using namespace std;
vector<int> vec;
void solve()
{
int n;
cin >> n;
vec.clear();
for (int i = 1; i <= n; i++)
{
int a;
cin >> a;
if (a == 0 && vec.size() == 0)
continue;
vec.pb(a);
}
while (vec.back() == 0)
vec.pop_back();
for (int a : vec)
{
if (a == 0)
{
cout << "NIE\n";
return;
}
}
bool b = true;
int cur = vec[0];
for (int i = 0; i < vec.size() - 1; i++)
{
if (cur <= 0)
{
b = false;
break;
}
cur = vec[i + 1] - (cur - 1);
}
if (cur != 1 && cur != 0)
b = false;
if (b)
{
cout << "TAK\n";
return;
}
if (vec.size() == 1)
{
cout << "NIE\n";
return;
}
b = true;
cur = vec[1] - vec[0];
for (int i = 1; i < vec.size() - 1; i++)
{
if (cur <= 0)
{
b = false;
break;
}
cur = vec[i + 1] - (cur - 1);
}
if (cur != 1 && cur != 0)
b = false;
if (b)
{
cout << "TAK\n";
return;
}
cout << "NIE\n";
}
int main()
{
cin.tie(0)->sync_with_stdio(0);
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #include <bits/stdc++.h> #define pb push_back #define f first #define s second #define ll long long #define dbg(x) cerr << #x << ": " << x << "\n" #define mp make_pair using namespace std; vector<int> vec; void solve() { int n; cin >> n; vec.clear(); for (int i = 1; i <= n; i++) { int a; cin >> a; if (a == 0 && vec.size() == 0) continue; vec.pb(a); } while (vec.back() == 0) vec.pop_back(); for (int a : vec) { if (a == 0) { cout << "NIE\n"; return; } } bool b = true; int cur = vec[0]; for (int i = 0; i < vec.size() - 1; i++) { if (cur <= 0) { b = false; break; } cur = vec[i + 1] - (cur - 1); } if (cur != 1 && cur != 0) b = false; if (b) { cout << "TAK\n"; return; } if (vec.size() == 1) { cout << "NIE\n"; return; } b = true; cur = vec[1] - vec[0]; for (int i = 1; i < vec.size() - 1; i++) { if (cur <= 0) { b = false; break; } cur = vec[i + 1] - (cur - 1); } if (cur != 1 && cur != 0) b = false; if (b) { cout << "TAK\n"; return; } cout << "NIE\n"; } int main() { cin.tie(0)->sync_with_stdio(0); int t; cin >> t; while (t--) solve(); return 0; } |
English