제출 #1143133

#제출 시각아이디문제언어결과실행 시간메모리
1143133Luca_Girbovan새로운 문제 (POI13_spa)C++20
12 / 100
191 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() && vizited[dr] == false){ 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...