Untitled
unknown
plain_text
a year ago
1.2 kB
7
Indexable
#include<bits/stdc++.h> using namespace std; #define ll long long int #define LD long double const int N = 100010; int inf = 1e9; int mod = 1e9 + 7; vector<int> graph[N]; int sz[N], id[N]; int CUR_ID = 1; bool visited[N]; void dfs(int cur) { if(visited[cur]) return; visited[cur] = true; id[cur] = CUR_ID; sz[CUR_ID]++; for(int u : graph[cur]) dfs(u); } signed main() { //freopen("IN", "r", stdin); //freopen("OUT", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, q; cin >> n >> m >> q; for(int i = 0; i < m; i++) { int u, v; cin >> u >> v; graph[u].push_back(v); graph[v].push_back(u); } for(int i = 1; i <= n; i++) { if(!visited[i]) { dfs(i); CUR_ID++; } } while(q--) { int t; cin >> t; if(t == 1) { int x; cin >> x; cout << sz[id[x]] << "\n"; } else { int x, y; cin >> x >> y; if(id[x] == id[y]) cout << "YES\n"; else cout << "NO\n"; } } return 0; }
Editor is loading...
Leave a Comment