#include <bits/stdc++.h> #define int long long #define llu long long unsigned #define ld long double #define fr(i,n) for(int i=0;i<n;i++) #define watch(x) cout<<(#x)<<"=="<<(x)<<endl #define ft first #define sc second #define mp make_pair #define pb push_back #define vi vector<int> #define pii pair<int,int> #define N 1000005 #define LC 262144 using namespace std; int getchar_pos_int() { int n = 0, c = getchar(); while ('0' <= c && c <= '9') { n = n * 10 + c - '0'; c = getchar(); } return n; } int a[N]; signed main() { int t=getchar_pos_int(),n; while(t--) { n=getchar_pos_int(); fr(i,n) a[i]=getchar_pos_int(); if(n==1) { if(a[0]<2) puts("TAK"); else puts("NIE"); continue; } if(n==2) { if(abs(a[0]-a[1])<2) puts("TAK"); else puts("NIE"); continue; } bool flag = false; fr(i,(n-1)/2) { a[i+1]-=a[i]; a[n-2-i]-=a[n-1-i]; if(a[i+1]<0||a[n-2-i]<0) { puts("NIE"); flag=true; continue; } a[i]=a[n-1-i]=0; } if(flag) continue; if(n%2) { if(a[n/2]<2) puts("TAK"); else puts("NIE"); } else { if(abs(a[n/2]-a[n/2-1])<2) puts("TAK"); else puts("NIE"); } } 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 | #include <bits/stdc++.h> #define int long long #define llu long long unsigned #define ld long double #define fr(i,n) for(int i=0;i<n;i++) #define watch(x) cout<<(#x)<<"=="<<(x)<<endl #define ft first #define sc second #define mp make_pair #define pb push_back #define vi vector<int> #define pii pair<int,int> #define N 1000005 #define LC 262144 using namespace std; int getchar_pos_int() { int n = 0, c = getchar(); while ('0' <= c && c <= '9') { n = n * 10 + c - '0'; c = getchar(); } return n; } int a[N]; signed main() { int t=getchar_pos_int(),n; while(t--) { n=getchar_pos_int(); fr(i,n) a[i]=getchar_pos_int(); if(n==1) { if(a[0]<2) puts("TAK"); else puts("NIE"); continue; } if(n==2) { if(abs(a[0]-a[1])<2) puts("TAK"); else puts("NIE"); continue; } bool flag = false; fr(i,(n-1)/2) { a[i+1]-=a[i]; a[n-2-i]-=a[n-1-i]; if(a[i+1]<0||a[n-2-i]<0) { puts("NIE"); flag=true; continue; } a[i]=a[n-1-i]=0; } if(flag) continue; if(n%2) { if(a[n/2]<2) puts("TAK"); else puts("NIE"); } else { if(abs(a[n/2]-a[n/2-1])<2) puts("TAK"); else puts("NIE"); } } return 0; } |