#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin>>t;
for(int i=0;i<t;i++) {
// cout << i+1 << endl;
int n;
cin>>n;
int last = 0;
bool zero_przod = true;
bool zero_tyl = false;
bool koniec = false;
bool only_ones = true;
vector<int> v;
for(int j=0;j<n;j++) {
int a;
cin>>a;
if(zero_przod) {
if(a != 0) {
zero_przod = false;
if(a != 1) {
only_ones = false;
}
v.push_back(a);
}
}else if(zero_tyl) {
if(a != 0) {
cout << "NIE\n";
koniec = true;
break;
}
}else if(!zero_tyl) {
if(a == 0) {
zero_tyl = true;
}else {
if(a != 1) {
only_ones = false;
}
v.push_back(a);
}
}
}
if(koniec) {
continue;
}
n = v.size();
if(n == 1) {
cout<<(v[0]==1?"TAK\n":"NIE\n");
continue;
}
if(n == 2) {
cout<<(abs(v[0] - v[1])<=1?"TAK\n":"NIE\n");
continue;
}
if(only_ones) {
cout << "TAK\n";
continue;
}
if(v[0] > v[1] && v[0] > 1) {
cout << "NIE\n";
continue;
}
if(v[n-1] > v[n-2] && v[n-1] > 1) {
cout << "NIE\n";
continue;
}
if(v[n-1] == v[n-2] && v[0] == v[1]) {
cout << "NIE\n";
}
int notobig = 0;
for(int j=1;j<n-1;j++) {
if(v[j] > v[j+1] + v[j-1]) {
if(v[j] - (v[j+1] + v[j-1] == 1)) {
notobig++;
}else {
cout << "NIE\n";
}
}
}
if(notobig > 1) {
cout << "NIE\n";
}
cout << "TAK\n";
}
}
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 | #include <bits/stdc++.h> using namespace std; int main() { int t; cin>>t; for(int i=0;i<t;i++) { // cout << i+1 << endl; int n; cin>>n; int last = 0; bool zero_przod = true; bool zero_tyl = false; bool koniec = false; bool only_ones = true; vector<int> v; for(int j=0;j<n;j++) { int a; cin>>a; if(zero_przod) { if(a != 0) { zero_przod = false; if(a != 1) { only_ones = false; } v.push_back(a); } }else if(zero_tyl) { if(a != 0) { cout << "NIE\n"; koniec = true; break; } }else if(!zero_tyl) { if(a == 0) { zero_tyl = true; }else { if(a != 1) { only_ones = false; } v.push_back(a); } } } if(koniec) { continue; } n = v.size(); if(n == 1) { cout<<(v[0]==1?"TAK\n":"NIE\n"); continue; } if(n == 2) { cout<<(abs(v[0] - v[1])<=1?"TAK\n":"NIE\n"); continue; } if(only_ones) { cout << "TAK\n"; continue; } if(v[0] > v[1] && v[0] > 1) { cout << "NIE\n"; continue; } if(v[n-1] > v[n-2] && v[n-1] > 1) { cout << "NIE\n"; continue; } if(v[n-1] == v[n-2] && v[0] == v[1]) { cout << "NIE\n"; } int notobig = 0; for(int j=1;j<n-1;j++) { if(v[j] > v[j+1] + v[j-1]) { if(v[j] - (v[j+1] + v[j-1] == 1)) { notobig++; }else { cout << "NIE\n"; } } } if(notobig > 1) { cout << "NIE\n"; } cout << "TAK\n"; } } |
English