#include <iostream>
#include <vector>
#include <queue>
#include <unordered_set>
using namespace std;
int n, k;
string x, y;
vector<string> v;
unordered_set<string> fr;
void read() {
cin >> n >> k >> x >> y;
v.resize(k + 1);
for (int i = 1; i <= k; i++) {
cin >> v[i];
fr.insert(v[i]);
}
}
void solve() {
unordered_set<string> st;
queue<string> q;
st.insert(x);
q.push(x);
string tp;
while (!q.empty()) {
tp = q.front();
q.pop();
for (int j = 0; j < tp.size(); j++) {
string cp = tp;
if (tp[j] == '1') {
cp[j] = '0';
}
else {
cp[j] = '1';
}
if (st.count(cp) || fr.count(cp)) {
continue;
}
q.push(cp);
st.insert(cp);
}
}
if (st.count(y)) {
cout << "TAK";
}
else {
cout << "NIE";
}
}
int main() {
read();
solve();
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... |