#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 22;
int n;
bool vis[1 << MAX_N];
void dfs( int x ) {
vis[x] = true;
for ( int b = 0; b < n; b++ ) {
int y = (x ^ (1 << b));
if ( !vis[y] )
dfs( y );
}
}
int convertString( string a ) {
int x = 0;
for ( int i = 0; i < a.size(); i++ ) {
int b = a[i] - '0';
x += (b << i);
}
return x;
}
int main() {
int k, x, y;
string a, b;
cin >> n >> k >> a >> b;
x = convertString( a );
y = convertString( b );
for ( int i = 0; i < k; i++ ) {
cin >> a;
vis[convertString( a )] = true;
}
if ( vis[x] || vis[y] ) {
cout << "NIE\n";
return 0;
}
dfs( x );
if ( vis[y] )
cout << "TAK\n";
else
cout << "NIE\n";
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... |