제출 #720302

#제출 시각아이디문제언어결과실행 시간메모리
720302JohannInside information (BOI21_servers)C++14
5 / 100
471 ms524288 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define vb vector<bool> #define vi vector<int> #define vpii vector<pii> #define vvb vector<vb> #define vvi vector<vi> #define vvpii vector<vpii> void dfs(vvpii & adj, int v, int t, int source, vvb & reachable) { reachable[source][v] = true; for (pii e : adj[v]) { if (e.second < t) dfs(adj, e.first, e.second, source, reachable); } } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int N, K; cin >> N >> K; vvpii adj(N); vvb con(N, vb(N, false)); for (int i = 0; i < N; ++i) con[i][i] = true; for (int t = 1; t < N + K; ++t) { string command; cin >> command; if (command == "S") { int a, b; cin >> a >> b; --a; --b; adj[a].push_back({b, t}); adj[b].push_back({a, t}); dfs(adj, b, t, a, con); dfs(adj, a, t, b, con); } else if (command == "Q") { int a,d; cin >> a >> d; --a; --d; if (con[a][d]) cout << "yes\n"; else cout << "no\n"; } else { int d; cin >> d; --d; int cnt = 0; for (int i = 0; i < N; ++i) if (con[i][d]) ++cnt; cout << cnt << "\n"; } } }
#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...