Submission #1224527

#TimeUsernameProblemLanguageResultExecution timeMemory
1224527SpyrosAlivInside information (BOI21_servers)C++20
0 / 100
11 ms1096 KiB
#include <bits/stdc++.h>
using namespace std;

const int MN = 120005;
const int MQ = 120005;
vector<int> mergeIdx(MN);
int n, q;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> q;
    for (int i = 1; i <= n; i++) mergeIdx[i] = -1;
    int merges = 0;
    for (int qq = 1; qq <= n + q - 1; qq++) {
        char s; cin >> s;
        if (s == 'S') {
            int a, b; cin >> a >> b;
            if (a == 1) swap(a, b);
            merges++;
            mergeIdx[a] = merges;
        }
        else if (s == 'Q') {
            int a, b; cin >> a >> b;
            if (mergeIdx[b] < mergeIdx[a] && mergeIdx[a] != -1 && mergeIdx[b] != -1) {
                cout << "yes\n";
            }
            else cout << "no\n";
        }
        else if (s == 'C') {
            int u; cin >> u;
            if (mergeIdx[u] == -1) cout << 0 << "\n";
            else {
                cout << merges - mergeIdx[u] + 2 << "\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...