Submission #1143359

#TimeUsernameProblemLanguageResultExecution timeMemory
1143359lucamiscociWalk (POI13_spa)C++20
12 / 100
94 ms2376 KiB
#include <iostream> using namespace std; const int kmax = 1e6; int n, k; bool marked[kmax + 1]; bool val[kmax + 1]; int a, b; int mask; string step; string start , finish; int conversion (string &s){ int output = 0; for (int i = 0; i < (int) s.size(); i++){ if (s[i] == '1') output += (1 << i); } return output; } void dfs (int node){ marked[node] = true; if (node == b){ cout << "TAK"; exit(0); } int i; for (i = 0; i < n; i++){ if (marked[node ^ (1 << i)] == false && val[node ^ (1 << i)] == false) dfs (node ^ (1 << i)); } } int main(){ cin >> n >> k; cin >> start; a = conversion(start); cin >> finish; b = conversion(finish); for (int i = 0; i < k; i++){ cin >> step; mask = conversion (step); val[mask] = true; } dfs (a); 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...