Submission #1143131

#TimeUsernameProblemLanguageResultExecution timeMemory
1143131andreifilimonWalk (POI13_spa)C++20
24 / 100
3942 ms327680 KiB
#include <bits/stdc++.h> using namespace std; #define ull long long int main() { int n, k; string sx, sy; cin >> n >> k >> sx >> sy; auto str_to_nr = [&](const string &s) -> ull { ull nr = 0; for(char c : s) nr = (nr << 1) | (c - '0'); return nr; }; ull x = str_to_nr(sx), y = str_to_nr(sy); unordered_set<ull> blk; string s; int i; for(i = 0; i < k; i++) { cin >> s; blk.insert(str_to_nr(s)); } if(x == y){cout << "TAK"; return 0;} if(blk.find(x) != blk.end() || blk.find(y) != blk.end()){cout << "NIE"; return 0;} queue<ull> q; unordered_set<ull> viz; q.push(x); viz.insert(x); while(!q.empty()) { ull curr = q.front(); q.pop(); for(i = 0; i < n; i++) { ull vec = curr ^ (1ULL << (n - 1 - i)); if(vec == y){cout << "TAK"; return 0;} if(blk.find(vec) == blk.end() && viz.find(vec) == viz.end()) { viz.insert(vec); q.push(vec); } } } cout << "NIE"; }
#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...