#include <stdio.h> #include <set> #include <algorithm> #include <iostream> using namespace std; void wypisz(int t[100010], int s) { cout << s << ": "; for(int i=0;i<s;i++) { cout << " " << t[i]; } cout << endl; } int main() { int t, n; scanf("%d",&t); for(;t--;) { scanf("%d",&n); int s[4][100010]; int idx[4]={0,0,0,0}; int m[4]; m[0]=m[2]=1111111111; m[1]=m[3]=-1111111111; for (int i=0;i<n;i++) { int a; for(int j=0;j<4;j++) { scanf("%d",&a); // cout << "a:"<< a << ", j:"<<j<<", m[j]:"<< m[j]<<endl; if (a==m[j]) {s[j][idx[j]]=i;idx[j]++;} else if ((j%2 && a>m[j]) || (j%2==0 && a<m[j])) { idx[j]=1; s[j][0]=i; m[j]=a; } } } for(int j=0;j<4;j++) { sort(s[j],s[j]+idx[j]); // wypisz(s[j],idx[j]); } int r1[100010],r2[100010],r3[100010]; int *r = set_intersection(s[0],s[0]+idx[0],s[1],s[1]+idx[1],r1); r = set_intersection(r1,r,s[2],s[2]+idx[2],r2); r = set_intersection(r2,r,s[3],s[3]+idx[3],r3); if (r-r3==0) cout << "NIE" << endl; else cout << "TAK" << endl; } 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 | #include <stdio.h> #include <set> #include <algorithm> #include <iostream> using namespace std; void wypisz(int t[100010], int s) { cout << s << ": "; for(int i=0;i<s;i++) { cout << " " << t[i]; } cout << endl; } int main() { int t, n; scanf("%d",&t); for(;t--;) { scanf("%d",&n); int s[4][100010]; int idx[4]={0,0,0,0}; int m[4]; m[0]=m[2]=1111111111; m[1]=m[3]=-1111111111; for (int i=0;i<n;i++) { int a; for(int j=0;j<4;j++) { scanf("%d",&a); // cout << "a:"<< a << ", j:"<<j<<", m[j]:"<< m[j]<<endl; if (a==m[j]) {s[j][idx[j]]=i;idx[j]++;} else if ((j%2 && a>m[j]) || (j%2==0 && a<m[j])) { idx[j]=1; s[j][0]=i; m[j]=a; } } } for(int j=0;j<4;j++) { sort(s[j],s[j]+idx[j]); // wypisz(s[j],idx[j]); } int r1[100010],r2[100010],r3[100010]; int *r = set_intersection(s[0],s[0]+idx[0],s[1],s[1]+idx[1],r1); r = set_intersection(r1,r,s[2],s[2]+idx[2],r2); r = set_intersection(r2,r,s[3],s[3]+idx[3],r3); if (r-r3==0) cout << "NIE" << endl; else cout << "TAK" << endl; } return 0; } |