// Tadeusz Kielak
#include <iostream>
using namespace std;
#define MAX_CHAR 300002
char bajtus[ MAX_CHAR ];
char bitus[ MAX_CHAR];
long znajdz( char c, long k, long n )
{
for( long l = k; l < n; l += 2 )
if( bitus[ l ] == c )
return l;
return -1;
}
void zamien( long k, long l)
{
char d = bitus[ k ];
bitus[ k ] = bitus[ l ];
bitus[ l ] = d;
}
int main()
{
long n, i;
cin >> n;
cin >> bitus;
cin >> bajtus;
i = 0;
while( i < n)
{
if( bitus[ i ] == bajtus[ i ])
i ++;
else
{
char c = bajtus[ i ];
long h = znajdz( c, i + 2, n);
if( h == -1 )
{
cout << "NIE\n";
return 0;
}
zamien( i, h );
i ++;
}
}
cout << "TAK\n";
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 | // Tadeusz Kielak #include <iostream> using namespace std; #define MAX_CHAR 300002 char bajtus[ MAX_CHAR ]; char bitus[ MAX_CHAR]; long znajdz( char c, long k, long n ) { for( long l = k; l < n; l += 2 ) if( bitus[ l ] == c ) return l; return -1; } void zamien( long k, long l) { char d = bitus[ k ]; bitus[ k ] = bitus[ l ]; bitus[ l ] = d; } int main() { long n, i; cin >> n; cin >> bitus; cin >> bajtus; i = 0; while( i < n) { if( bitus[ i ] == bajtus[ i ]) i ++; else { char c = bajtus[ i ]; long h = znajdz( c, i + 2, n); if( h == -1 ) { cout << "NIE\n"; return 0; } zamien( i, h ); i ++; } } cout << "TAK\n"; return 0; } |
English