#include <iostream>
using namespace std;
string s;
int n, x, y;
bool viz[4194305];
void dfs(int nod) {
viz[nod] = 1;
if ( viz[y] == 1)
return;
for(int i = 0; i < n; i++) {
int vecin = (nod ^ (1<<i));
if(viz[vecin] == 0) {
dfs(vecin);
}
}
}
signed main() {
int m, k, z, nr;
cin>>n>>m;
cin>>s;
nr = 0;
for(int i = 0; i < s.size(); i++) {
nr = nr * 2 + (s[i] - '0') ;
}
x = nr;
cin>>s;
nr = 0;
for(int i = 0; i < s.size(); i++) {
nr = nr * 2 + (s[i] - '0') ;
}
y = nr;
if(x == y) {
cout<<"TAK";
return 0;
}
for(int i = 1; i <= m; i++) {
cin>>s;
nr = 0;
for(int i = 0; i < s.size(); i++) {
nr = nr * 2 + (s[i] - '0') ;
}
z = nr;
viz[z] = 1;
}
dfs(x);
if(viz[y] == 1)
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... |