제출 #970940

#제출 시각아이디문제언어결과실행 시간메모리
970940kl0989eInside information (BOI21_servers)C++17
5 / 100
1036 ms524288 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define fi first
#define se second
#define pb push_back
#define vi vector<int>
#define pi pair<int, int>
#define all(x) (x).begin(),(x).end()

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n,k;
    cin >> n >> k;
    vector<unordered_set<int>> servers(n);
    vi count(n,1);
    for (int i=0; i<n; i++) {
        servers[i].insert(i);
    }
    char c;
    int a,b;
    for (int i=0; i<k+n-1; i++) {
        cin >> c;
        if (c=='S') {//S a b means servers 𝑎 and 𝑏 Share all their data.
            cin >> a >> b;
            a--;
            b--;
            if (servers[a].size()<servers[b].size()) {
                swap(a,b);
            }
            servers[a].merge(servers[b]);
            servers[b]=servers[a];
            for (auto aa:servers[a]) {
                count[aa]++;
            }
        }
        else if (c=='Q') {//Q a d means you Query whether server 𝑎 currently stores data chunk 𝑑.
            cin >> a >> b;
            a--;
            b--;
            if (servers[a].count(b)) {
                cout << "yes\n";
            }
            else {
                cout << "no\n";
            }
        }
        else {//C d means you query the Count (number) of servers that currently store data chunk 𝑑.
            cin >> a;
            a--;
            cout << count[a] << '\n';
        }
    }
    return 0;
}
#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...