Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define FAST_ALLOCATOR_MEMORY 210000000
- #define y1 yy11
- #include "optimization.h"
- using namespace std;
- typedef long long ll;
- typedef long long llu;
- const ll maxn = 163456;
- ll p[maxn];
- ll getp(ll i) {
- return (p[i] == i) ? i : (p[i] = getp(p[i]));
- }
- void join(ll a, ll b) {
- a = getp(a), b = getp(b);
- p[a] = b;
- }
- inline int solve() {
- for (int i = 0; i < maxn; ++i) {
- p[i] = i;
- }
- ll n = readInt(), m = readInt(), k = readInt();
- for (int i = 0; i < n; ++i) {
- readInt();
- readInt();
- }
- vector<pair<string, pair<ll, ll>>> qs;
- for (int i = 0; i < k; ++i) {
- char buf[5];
- readWord(buf);
- string a = buf;
- ll b = readInt() - 1, c = readInt() - 1;
- qs.push_back({a, {b, c}});
- }
- vector<string> ans;
- reverse(qs.begin(), qs.end());
- for (auto i : qs) {
- if (i.first == "ask") {
- if (getp(i.second.first) == getp(i.second.second)) {
- ans.push_back("YES");
- } else {
- ans.push_back("NO");
- }
- } else {
- join(i.second.first, i.second.second);
- }
- }
- for (auto i = ans.rbegin(); i != ans.rend(); i++) {
- writeWord(i->c_str());
- writeChar('\n');
- }
- }
- int main() {
- #ifdef DEBUG
- freopen("input.txt", "r", stdin);
- #endif
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- solve();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement