#include<iostream> using namespace std; int a[ 100000 + 1 ]; int p1[ 100000 + 1 ], p2[ 100000 + 1 ]; int z = 0; int pole( int w1, int w2, int h1, int h2 ) { z++; p1[ z ] = 0, p2[ z ] = 0; p1[ z ] = w1 * h1; p2[ z ] = w2 * h2; return p2[ z ] - p1[ z ]; } //pole bool czyMajoryzuje( int a[], int n ) { for( int i = 0 ; i < n ; ++i ) { for( int j = i + 1 ; j < n ; ++j ) { if( a[ i ] == a[ j ] ) return true; } } return false; } //czyMajoryzuje bool czyRowne() { for( int i = 1 ; i < z + 1 ; ++i ) { for( int j = i + 1 ; j < z + 1; ++j ) { if( ( p1[ i ] == p1[ j ] && p2[ i ] == p2[ j ] )) return true; } } return false; } int main() { ios_base::sync_with_stdio( 0 ); int w1, w2, h1, h2; int t, n; cin >> t; while( t-- ) { cin >> n; for( int i = 0 ; i < n ; ++i ) { cin >> w1 >> w2 >> h1 >> h2; a[ i ] = pole( w1, w2, h1, h2 ); } if( czyMajoryzuje( a, n ) == true ) { if( czyRowne() == true ) cout << "TAK" << endl; else cout << "NIE" << endl; } else cout << "TAK" << endl; z = 0; } return 0; } //main
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 | #include<iostream> using namespace std; int a[ 100000 + 1 ]; int p1[ 100000 + 1 ], p2[ 100000 + 1 ]; int z = 0; int pole( int w1, int w2, int h1, int h2 ) { z++; p1[ z ] = 0, p2[ z ] = 0; p1[ z ] = w1 * h1; p2[ z ] = w2 * h2; return p2[ z ] - p1[ z ]; } //pole bool czyMajoryzuje( int a[], int n ) { for( int i = 0 ; i < n ; ++i ) { for( int j = i + 1 ; j < n ; ++j ) { if( a[ i ] == a[ j ] ) return true; } } return false; } //czyMajoryzuje bool czyRowne() { for( int i = 1 ; i < z + 1 ; ++i ) { for( int j = i + 1 ; j < z + 1; ++j ) { if( ( p1[ i ] == p1[ j ] && p2[ i ] == p2[ j ] )) return true; } } return false; } int main() { ios_base::sync_with_stdio( 0 ); int w1, w2, h1, h2; int t, n; cin >> t; while( t-- ) { cin >> n; for( int i = 0 ; i < n ; ++i ) { cin >> w1 >> w2 >> h1 >> h2; a[ i ] = pole( w1, w2, h1, h2 ); } if( czyMajoryzuje( a, n ) == true ) { if( czyRowne() == true ) cout << "TAK" << endl; else cout << "NIE" << endl; } else cout << "TAK" << endl; z = 0; } return 0; } //main |