Submission #1143219

#TimeUsernameProblemLanguageResultExecution timeMemory
1143219alexnicuWalk (POI13_spa)C++17
24 / 100
192 ms62848 KiB
#include <iostream> #include <string> #include <vector> #include <queue> using namespace std; int existing_numbers[(1<<22) + 5]; int finish; bool ans = 0; int n; void dfs( int node ) { existing_numbers[node] = 1; for( int i = 0; i < n; i++ ) if( existing_numbers[node ^ (1<<i)] == 0 ) dfs((node ^ (1<<i))); } int main() { int k; cin >> n >> k; string a, b; cin >> a >> b; int start, finish; start = finish = 0; for (int i = 0; i < n; ++i) { start = 2 * start + (a[i] - '0'); finish = 2 * finish + (b[i] - '0'); } string s; if ( start == finish ) { cout << "TAK"; return 0; } for ( int i = 1; i <= k; i++ ) { cin >> s; int x = 0; for (int j = 0; j < n; ++j) x = 2 * x + (s[j] - '0'); existing_numbers[x] = 2; } dfs(start); if ( existing_numbers[finish] == 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...