#include <bits/stdc++.h>
using namespace std;
bool test(vector<int> numbers){
bool possible = true;
for(int i = 1; i<numbers.size()-1; i++){
if(numbers[i] <= numbers[i-1]) possible = false;
numbers[i] -= (numbers[i-1] + 1);
}
int tmp = numbers[numbers.size() - 2] - numbers[numbers.size() - 1];
if(tmp != 0 and tmp != -1) possible = false;
return possible;
}
void solve(){
int n;
cin>>n;
bool sr = false;
bool possible = true;
vector<int> numbers;
for(int i = 0; i<n; i++){
int a;
cin>>a;
if(a == 0 and numbers.size() != 0) sr = true;
else if(a > 0){
numbers.push_back(a);
if(sr) possible = false;
}
}
if(numbers.size() == 1 and numbers[0] > 1) possible = false;
if(numbers.size() == 2 and abs(numbers[0] - numbers[1]) > 1) possible = false;
if(numbers.size() > 2){
bool tmp = test(numbers);
numbers[0]--;
tmp |= test(numbers);
possible &= tmp;
}
if(!possible){
cout<<"NIE\n";
return;
}
cout<<"TAK\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 | #include <bits/stdc++.h> using namespace std; bool test(vector<int> numbers){ bool possible = true; for(int i = 1; i<numbers.size()-1; i++){ if(numbers[i] <= numbers[i-1]) possible = false; numbers[i] -= (numbers[i-1] + 1); } int tmp = numbers[numbers.size() - 2] - numbers[numbers.size() - 1]; if(tmp != 0 and tmp != -1) possible = false; return possible; } void solve(){ int n; cin>>n; bool sr = false; bool possible = true; vector<int> numbers; for(int i = 0; i<n; i++){ int a; cin>>a; if(a == 0 and numbers.size() != 0) sr = true; else if(a > 0){ numbers.push_back(a); if(sr) possible = false; } } if(numbers.size() == 1 and numbers[0] > 1) possible = false; if(numbers.size() == 2 and abs(numbers[0] - numbers[1]) > 1) possible = false; if(numbers.size() > 2){ bool tmp = test(numbers); numbers[0]--; tmp |= test(numbers); possible &= tmp; } if(!possible){ cout<<"NIE\n"; return; } cout<<"TAK\n"; } int main(){ cin.tie(0)->sync_with_stdio(0); int t; cin>>t; while(t--) solve(); return 0; } |
English