#include <bits/stdc++.h>
#define VMAX 10000000
using namespace std;
bool gasit[VMAX], blocat[VMAX];
int st, dr;
int nr(string &s){
int val = 0;
for(int i=0; i < (int)s.size(); i++)
if(s[i] == '1')
val += (1<<i);
return val;
}
void dfs(int crt, int n){
gasit[crt] = true;
if(crt == dr){
cout<<"TAK";
exit(0);
}
for(int i=0; i < n; i++)
if(gasit[(crt ^ (1 << i))] == false && blocat[(crt ^ (1 << i))] == false)
dfs((crt ^ (1 << i)), n);
}
int main (){
int n, k;
int crt;
string start, finish, a;
cin>>n>>k;
cin>>start;
st = nr(start);
cin>>finish;
dr = nr(finish);
for(int i=1; i<=k; i++){
cin>>a;
crt = nr(a);
blocat[crt] = true;
}
dfs(st, n);
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... |