Submission #722722

#TimeUsernameProblemLanguageResultExecution timeMemory
722722vjudge1Mostovi (COI14_mostovi)C++14
0 / 100
1 ms476 KiB
#include <bits/stdc++.h> using namespace std; int n; bool smee[1000000]; int most[1000000]; bool visited[1002]; bool proveri(int pocetok,int kraj) { queue<int> q; q.push(pocetok); visited[pocetok]=true; while(!q.empty()) { int poz=q.front(); //cout<<poz<<endl; //system("pause"); q.pop(); if (poz==kraj) return true; if (smee[poz]) { if (poz<n && visited[poz+1]==false) { q.push(poz+1); visited[poz+1]=true; } if (poz>n-1 && visited[poz-1]==false) { q.push(poz-1); visited[poz-1]=true; } } if (most[poz]>0 && visited[most[poz]]==false) { visited[most[poz]]=true; q.push(most[poz]); } } return false; } int main() { cin>>n; int t; cin>>t; for (int i=1;i<=2*n;i++) smee[i]=true; while(t--) { char a; int b,c; cin>>a>>b>>c; if (a=='A') { most[b]=c; most[c]=b; } if(a=='B') { if (b>n) smee[max(c,b)]=false; else smee[min(c,b)]=false; } if(a=='Q') { memset(visited,0,sizeof(visited)); if(proveri(b,c)) cout<< "DA\n"; else cout<<"NE\n"; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...