#include <iostream>
using namespace std;
int n, k;
int marked[1000001];
int val[1000001];
int a, b;
int conversion (string &s){
int output = 0;
int length = s.size();
for (int i = 0; i < length; i++){
if (s[i] == '1')
output += (1 << i);
}
return output;
}
void dfs (int node){
marked[node] = true;
if (node == b){
cout << "TAK";
exit(0);
}
for (int i = 0; i < n; i++){
if (marked[node ^ (1 << i)] == false && val[node ^ (1 << i)] == false)
dfs (node ^ (1 << i));
}
}
int main(){
cin >> n >> k;
string step;
string start , finish;
cin >> start;
a = conversion(start);
cin >> finish;
b = conversion(finish);
for (int i = 0; i < k; i++){
cin >> step;
int mask = conversion (step);
val[mask] = true;
}
dfs (a);
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... |