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