Submission #1143130

#TimeUsernameProblemLanguageResultExecution timeMemory
1143130Luca_GirbovanWalk (POI13_spa)C++20
12 / 100
195 ms11476 KiB
#include <bits/stdc++.h> using namespace std; const int MAX_N = 60; const int MAX_K = 1000000; int n, k; int st, crt, nxt, dr; bool vizited[10000000], blocked[10000000]; string start, finish, mask; int string2nr(string &s){ int val = 0; for(int i=0; i < (int)s.size(); i++) if(s[i] == '1') val += (1<<i); return val; } queue<int> q; void bfs(){ vizited[st] = true; q.push(st); while(!q.empty()){ crt = q.front(); q.pop(); for(int i=0; i < n; i++){ nxt = (crt ^ (1 << i)); if(vizited[nxt] == false && blocked[nxt] == false){ vizited[nxt] = true; q.push(nxt); } } } } int main (){ ios_base::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr); cin>>n>>k; cin>>start; st = string2nr(start); cin>>finish; dr = string2nr(finish); for(int i=1; i<=k; i++){ cin>>mask; crt = string2nr(mask); blocked[crt] = true; } bfs(); if(vizited[dr] == true) 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...