Submission #1143343

#TimeUsernameProblemLanguageResultExecution timeMemory
1143343db_123Walk (POI13_spa)C++20
12 / 100
5104 ms327680 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...