Submission #1143353

#TimeUsernameProblemLanguageResultExecution timeMemory
1143353snpmrnhlolWalk (POI13_spa)C++20
12 / 100
5099 ms327680 KiB
#include<bits/stdc++.h> #define int long long using namespace std; const int K = 1e6; int calc(string &x){ int nr = 0; for(int i = 0;i < x.size();i++){ nr = nr*2 + x[i] - '0'; } return nr; } set <int> vis; int st, en; int n, k; bool dfs(int x){ if(vis.find(x) != vis.end())return 0; //cout<<x<<'\n'; vis.insert(x); if(x == en)return 1; bool ok = 0; for(int i = 0;i < n;i++){ if((x^en)>>i&1){ ok|=dfs(x^(1ll<<i)); if(ok)break; } } if(ok)return 1; for(int i = 0;i < n;i++){ if(!((x^en)>>i&1)){ ok|=dfs(x^(1ll<<i)); if(ok)break; } } return ok; } int32_t main(){ cin>>n>>k; string a, b; cin>>a>>b; st = calc(a); en = calc(b); for(int i = 0;i < k;i++){ cin>>a; vis.insert(calc(a)); } if(dfs(st)){ cout<<"TAK\n"; }else{ cout<<"NIE\n"; } return 0; } /** 4 6 0000 1011 0110 0111 0011 1101 1010 1001 **/
#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...