제출 #1195605

#제출 시각아이디문제언어결과실행 시간메모리
1195605anmattroiInside information (BOI21_servers)C++17
5 / 100
864 ms377144 KiB
#include <bits/stdc++.h>
#define maxn 120005
#define fi first
#define se second
using namespace std;
using ii = pair<int, int>;

int n, k;
set<int> q[4005];

int cnt[maxn];

void queryS() {
    int u, v;
    cin >> u >> v;
    for (int i : q[u]) if (!q[v].count(i)) ++cnt[i];
    for (int i : q[v]) if (!q[u].count(i)) ++cnt[i];

    for (int i : q[u]) q[v].insert(i);
    q[u] = q[v];
}

void queryQ() {
    int a, d;
    cin >> a >> d;
    cout << (q[a].count(d) ? "yes\n" : "no\n");
}

void queryC() {
    int u;
    cin >> u;
    cout << cnt[u] << '\n';
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> n >> k;

    for (int i = 1; i <= n; i++) {
        cnt[i] = 1;
        q[i].insert(i);
    }
    for (int _ = 1; _ < n+k; _++) {
        char type;
        cin >> type;
        switch (type) {
        case 'S' :
            queryS();
            break;
        case 'Q' :
            queryQ();
            break;
        default :
            queryC();
        }
    }

}
#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...