Submission #1143294

#TimeUsernameProblemLanguageResultExecution timeMemory
1143294LucaIlieWalk (POI13_spa)C++20
12 / 100
181 ms60912 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 22;
int n;
bool vis[1 << MAX_N];

void dfs( int x ) {
    vis[x] = true;
    for ( int b = 0; b < n; b++ ) {
        int y = (x ^ (1 << b));
        if ( !vis[y] )
            dfs( y );
    }
}

int convertString( string a ) {
    int x = 0;
    for ( int i = 0; i < a.size(); i++ ) {
        int b = a[i] - '0';
        x += (b << i);
    }
    return x;
}

int main() {

    int k, x, y;
    string a, b;

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

    x = convertString( a );
    y = convertString( b );

    for ( int i = 0; i < k; i++ ) {
        cin >> a;
        vis[convertString( a )] = true;
    }

    if ( vis[x] || vis[y] ) {
        cout << "NIE\n";
        return 0;
    }

    dfs( x );

    if ( vis[y] )
        cout << "TAK\n";
    else
        cout << "NIE\n";

    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...