Submission #787726

#TimeUsernameProblemLanguageResultExecution timeMemory
787726drkarlicio2107Inside information (BOI21_servers)C++14
5 / 100
305 ms524288 KiB
#include <bits/stdc++.h> using namespace std; int l [5000][5000]; int sz [120010]; bitset <120010> bi [120010]; int main(){ int n, k; cin >> n >> k; if (n<=4000){ for (int i=1; i<n+1; i++){ l [i][i]=1; sz [i]=1; } for (int i=0; i<n+k-1; i++){ char q; cin >> q; if (q=='S'){ int a, b; cin >> a >> b; for (int j=1; j<n+1; j++){ if (l [a][j]+l [b][j]==1) sz [j]++; l [a][j]=l [b][j]=max (l [a][j], l [b][j]); } } else if (q=='Q'){ int a, b; cin >> a >> b; if (l [a][b]==1) cout << "yes" << endl; else cout << "no" << endl; } else { int d; cin >> d; cout << sz [d] << endl; } } } else { for (int i=1; i<n+1; i++){ bi [i][i]=1; sz [i]=1; } for (int i=0; i<n+k-1; i++){ char q; cin >> q; if (q=='S'){ int a, b; cin >> a >> b; bi [a]|=bi [b]; bi [b]|=bi [a]; } else if (q=='Q'){ int a, b; cin >> a >> b; if (bi [a][b]==1) cout << "yes" << endl; else cout << "no" << 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...