Submission #1143380

#TimeUsernameProblemLanguageResultExecution timeMemory
1143380wizard_49Walk (POI13_spa)C++20
12 / 100
5097 ms263068 KiB
#include <iostream> #include <fstream> #include <queue> #include <cmath> #include <string> using namespace std; vector<int> vis; int convert(int n,string s){ int x=0; for(int i=0;i<n;i++){ x+=(s[i]-'0')*((int)1<<(n-i-1)); } return x; } queue<int> q; int main(){ int n,k,x=0,y=0; string s; cin>>n>>k>>s; x=convert(n,s); cin>>s; y=convert(n,s); vis.resize((int)pow(2,n),0); for(int i=0;i<k;i++){ cin>>s; vis[convert(n,s)]=-1; } q.push(x); vis[x]=1; while(!q.empty()){ if(vis[y]==1){ break; } int p=q.front(); q.pop(); for(int i=0;i<n;i++){ int p1; if(p&(1<<(i))){ p1=p-(1<<(i)); } else{ p1=p+(1<<(i)); } if(vis[p1]==0){ vis[p1]=1; q.push(p1); } } } if(vis[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...