Submission #1143196

#TimeUsernameProblemLanguageResultExecution timeMemory
1143196armin2006Walk (POI13_spa)C++20
12 / 100
184 ms62748 KiB
#include <iostream>

using namespace std;


const int NMAX = 22;
const int KMAX = (1 << NMAX) - 1;

int viz[(1 << NMAX) + 54];

int n;
void dfs(int node) {
    viz[node] = 1;

    for (int i = 0; i < n; ++i) {
        if (viz[node ^ (1 << i)] == 0)
            dfs(node ^ (1 << i));
    }
}

int main() {
    int k, i;
    string a, b;

    cin >> n >> k;
    cin >> a >> b;

    int x, y;

    x = y = 0;
    for (i = 0; i < n; ++i) {
        x = 2 * x + (a[i] - '0');
        y = 2 * y + (b[i] - '0');
    }

    for (i = 0; i < k; ++i) {
        cin >> a;

        int z = 0;
        for (int j = 0; j < n; ++j)
            z = 2 * z + (a[j] - '0');
        viz[z] = 2;
    }


    dfs(x);
    if (viz[y] == 1)
        cout << "TAK";
    else
        cout << "NIE";
    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...