Submission #1168051

#TimeUsernameProblemLanguageResultExecution timeMemory
1168051Faisal_SaqibWalk (POI13_spa)C++20
12 / 100
5107 ms327680 KiB
#include <iostream> #include <map> #include <queue> using namespace std; #define ll long long int n,k; char c; ll asp=0; map<ll,bool> banned,vis; map<ll,ll> dist; ll read() { asp=0; for(int i=0;i<n;i++) { cin>>c; asp<<=1; asp+=c-'0'; } return asp; } ll gcost(ll x,ll y) { return __builtin_popcountll(x^y); } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>k; ll x=read(),ed=read(); for(int i=0;i<k;i++) { ll c=read(); banned[c]=1; } priority_queue<pair<pair<ll,ll>,ll>,vector<pair<pair<ll,ll>,ll>>,greater<pair<pair<ll,ll>,ll>>>pq; banned[x]=1; pq.push({{0,gcost(x,ed)},x}); while(pq.size()) { auto it=pq.top(); pq.pop(); ll st=it.second; if(st==ed) { cout<<"TAK"<<endl; return 0; } ll dt=dist[it.second]; if(dt!=it.first.first)continue; ll pw=1; for(int bi=0;bi<n;bi++) { ll y=st^pw; if(!banned[y]) { banned[y]=1; dist[y]=dt+1; pq.push({{dt+1,gcost(y,ed)},y}); } pw<<=1; } } cout<<"NIE"<<endl; 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...