제출 #1224538

#제출 시각아이디문제언어결과실행 시간메모리
1224538SpyrosAlivInside information (BOI21_servers)C++20
2 / 100
28 ms1184 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;
    mergeIdx[1] = n + q;
    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 (a == b) {
                cout << "yes\n";
                continue;
            }
            if (a == 1 || b == 1) {
                if ((a == 1 && mergeIdx[b] != -1) || (b == 1 && mergeIdx[a] != -1)) cout << "yes\n";
                else cout << "no\n";
                continue;
            }
            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 (u == 1) {
                cout << merges + 1 << "\n";
                continue;
            }
            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...