제출 #1224406

#제출 시각아이디문제언어결과실행 시간메모리
1224406SpyrosAlivInside information (BOI21_servers)C++20
2 / 100
3593 ms589824 KiB
#include <bits/stdc++.h> using namespace std; const int MN = 120005; const int MQ = 120005; vector<set<int>> sets(MN); int n, q; void merge(int u, int v) { if (sets[u].size() < sets[v].size()) swap(u, v); for (auto x: sets[v]) { sets[u].insert(x); } sets[v] = sets[u]; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> q; for (int i = 1; i <= n; i++) { sets[i].insert(i); } for (int qq = 1; qq <= n + q - 1; qq++) { char s; cin >> s; if (s == 'S') { int a, b; cin >> a >> b; merge(a, b); } else if (s == 'Q') { int a, b; cin >> a >> b; if (sets[a].find(b) != sets[a].end()) cout << "yes\n"; else cout << "no\n"; } else if (s == 'C') { int u; cin >> u; int tot = 0; for (int i = 1; i <= n; i++) { if (sets[i].find(u) != sets[i].end()) { tot++; } } cout << tot << "\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...