제출 #729050

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

const int N = 4005;;

int cnt[N];
vector<int> v[N];

signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr); 
  int n, k;
  cin >> n >> k;
  for (int i = 1; i <= n; ++i) {
    v[i].push_back(i); 
    cnt[i] = 1; 
  }
  auto merge = [&](vector<int> &a, vector<int>& b) {
    vector<int> c;
    for (int i = 0; i < (int) a.size(); ++i) {
      c.push_back(a[i]); 
      cnt[a[i]]++;
    }
    for (int i = 0; i < (int) b.size(); ++i) {
      c.push_back(b[i]); 
      cnt[b[i]]++; 
    }
    a = b = c; 
  };
  for (int i = 0; i < n + k - 1; ++i) {
    char c;
    cin >> c;
    if (c == 'S') {
      int a, b;
      cin >> a >> b; 
      merge(v[a], v[b]); 
    } 
    else if (c == 'C') {
      int a;
      cin >> a;
      cout << cnt[a] << '\n'; 
    } 
    else if (c == 'Q') {
      int a, b;
      cin >> a >> b;
      bool ans = false;
      for (int j = 0; j < (int) v[a].size(); ++j) {
        if (v[a][j] == b) {
          ans = true;
          break; 
        }
      }
      cout << (ans ? "yes" : "no") << '\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...