#include <bits/stdc++.h>
using namespace std;
const int nmax = 60;
const int kmax = 1e6;
int n, k;
int marked[nmax + 1];
int val[kmax + 1];
int a, b;
int conversion (string &s){
int output;
for (int i = 0; i < s.size(); i++){
if (s[i] == '1')
output += (1 << i);
}
return output;
}
ofstream fout ("walk.out");
void dfs (int node){
marked[node] = true;
if (node == b){
fout << "TAK";
exit(0);
}
for (int i = 0; i < n; i++){
if (marked[node ^ (1 << i)] == false)
if (val[node ^ (1 << i)] == false)
dfs (node ^ (1 << i));
}
}
int main(){
ifstream fin ("walk.in");
fin >> n >> k;
string step;
string start , finish;
fin >> start;
a = conversion(start);
fin >> finish;
b = conversion(finish);
for (int i = 0; i < k; i++){
fin >> step;
int mask = conversion (step);
val[mask] = true;
}
dfs (a);
fout << "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... |