#include <bits/stdc++.h>
#define fi first
#define se second
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef pair<bool, bool> pbb;
const ll MAXN = 120000 + 5;
const ll MAXQ = 2*MAXN;
// 5 5
// S 1 2
// S 3 4
// S 5 4
// S 2 3
// C 1
// C 2
// C 3
// C 4
// C 5
ll n, k;
pair<char, pll> query[MAXQ];
// {Type, {a, b}}
vector<ll> server[MAXN];
ll cnt[MAXN];
void addEdge(ll a, ll b) {
vector<ll> tmpa = server[a];
vector<ll> tmpb = server[b];
for (int i = 0; i < tmpa.size(); ++i) {
server[b].push_back(tmpa[i]);
cnt[tmpa[i]]++;
}
for (int i = 0; i < tmpb.size(); ++i) {
server[a].push_back(tmpb[i]);
cnt[tmpb[i]]++;
}
}
void data(ll a, ll b) {
bool ada = false;
for (int i = 0; i < server[a].size(); ++i) {
if(server[a][i] == b) {
ada = true;
break ;
}
}
cout << (ada ? "yes" : "no") << "\n";
}
void count(ll a) {
cout << cnt[a] << "\n";
}
void input() {
cin >> n >> k;
for (int i = 1; i <= n; ++i) {
server[i].push_back(i);
cnt[i] = 1;
}
for (int i = 1; i <= n+k-1; ++i) {
cin >> query[i].fi;
switch(query[i].fi) {
case 'S':
cin >> query[i].se.fi >> query[i].se.se;
addEdge(query[i].se.fi, query[i].se.se);
break ;
case 'Q':
cin >> query[i].se.fi >> query[i].se.se;
data(query[i].se.fi, query[i].se.se);
break ;
case 'C':
cin >> query[i].se.fi;
count(query[i].se.fi);
break ;
}
}
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(0);
input();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |