#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
#define ll long long
// ifstream cin("data.in");
// ofstream cout("data.out");
vector<ll> vpow;
vector<int> visited;
ll snr(int n,string s){
ll x=0;
for(ll i=0;i<n;i++){
x+=(s[i]-'0')*((ll)1<<(n-i-1));
}
return x;
}
void dfs(ll p,ll n){
visited[p]=1;
for(int i=0;i<n;i++){
ll p1;
if(p&(1<<(i))){
p1=p-(1<<(i));
}
else{
p1=p+(1<<(i));
}
if(visited[p1]==0){
dfs(p1,n);
}
}
}
int main(){
ll n,k,i,j,x=0,y=0;
string s;
cin>>n>>k;
cin>>s;
x=snr(n,s);
cin>>s;
y=snr(n,s);
visited.resize((1<<n)+2,0);
for(i=0;i<k;i++){
cin>>s;
visited[snr(n,s)]=-1;
}
dfs(x,n);
if(visited[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... |