#include <iostream>
using namespace std;
#define int long long
const int kmax = 1e6;
const int nmax = 1e7;
int v[kmax];
bool viz[nmax];
int n;
int tr( string s ) {
int p2 = 1, rez = 0;
for( int i = n - 1; i >= 0; i-- ) {
rez = rez + p2 * s[i] - '0';
p2 *= 2;
}
return rez;
}
void bfs( int vf ) {
viz[vf] = true;
int p2 = 1;
for( int i = 0; i < n; i++ ) {
if( (vf / p2) % 2 == 0 ) {
if( viz[vf + p2] == false )
bfs( vf + p2 );
} else {
if( viz[vf - p2] == false )
bfs( vf - p2 );
}
p2 *= 2;
}
}
signed main()
{
int k;
cin >> n >> k;
int x, y;
string s;
cin >> s;
x = tr(s);
cin >> s;
y = tr(s);
for( int i = 0; i < k; i++ ) {
cin >> s;
v[i] = tr(s);
viz[v[i]] = true;
}
bfs( x );
if( viz[y] == true )
cout << "TAK";
else
cout << "NIE";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |