# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1143227 | victor_c | Walk (POI13_spa) | C++20 | 0 ms | 0 KiB |
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int n, m;
char x[1<<24], w;
void red(int &x)
{
x=0;
for(int i=0; i<n; i++)
{
cin>>w;
x=x*2+w-'0';
}
}
void df(int v)
{
x[v]=2;
for(int i=0; i<n; i++)
{
if(x[v^(1<<i)]==0)
df(v^(1<<i));
}
}
int main()
{
int a, b;
cin>>n>>m;
red(a);
red(b);
for(int j=0; j<m; j++)
{
red(k);
x[k]=1;
}
if(a==b)
{
cout<<"TAK";
return 0;
}
df(a);
if(x[b]==2)
cout<<"TAK";
else cout<<"NIE";
}
return 0;