Submission #1143214

#TimeUsernameProblemLanguageResultExecution timeMemory
1143214tudor_popescuWalk (POI13_spa)C++20
24 / 100
208 ms184932 KiB
#include <bits/stdc++.h>
#define VMAX 10000000
using namespace std;


bool gasit[VMAX], blocat[VMAX];
int st, dr;
int nr(string &s){
    int val = 0;
    for(int i=0; i < (int)s.size(); i++)
        if(s[i] == '1')
            val += (1<<i);
    return val;
}

void dfs(int crt, int n){
    gasit[crt] = true;
    if(crt == dr){
        cout<<"TAK";
        exit(0);
    }

    for(int i=0; i < n; i++)
        if(gasit[(crt ^ (1 << i))] == false && blocat[(crt ^ (1 << i))] == false)
            dfs((crt ^ (1 << i)), n);
}

int main (){
    int n, k;
    int crt;
    string start, finish, a;
    cin>>n>>k;

    cin>>start;
    st = nr(start);

    cin>>finish;
    dr = nr(finish);

    for(int i=1; i<=k; i++){
        cin>>a;
        crt = nr(a);
        blocat[crt] = true;
    }

    dfs(st, n);
    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...