Submission #1179903

#TimeUsernameProblemLanguageResultExecution timeMemory
1179903mertbbmInside information (BOI21_servers)C++20
5 / 100
1004 ms1220 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long 
#define ld long double
#define show(x,y) cout << y << " " << #x << endl;
#define show2(x,y,i,j) cout << y << " " << #x << "  " << j << " " << #i << endl;
#define show3(x,y,i,j,p,q) cout << y << " " << #x << "  " << j << " " << #i << "  " << q << " " << #p << endl;
#define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl;
typedef pair<int,int>pii;
mt19937_64 rng(chrono::system_clock::now().time_since_epoch().count());

vector<pii>adj[4005];

vector<int>v;

void dfs(int index, int cur, int par){
	v.push_back(index);
	for(auto it:adj[index]){
		if(it.first==par) continue;
		if(it.second<cur) continue;
		dfs(it.first,it.second,index);
	}
}

void solve(){
	int n,q;
	cin >> n >> q;
	
	char temp;
	int a,b;
	for(int x=0;x<n+q-1;x++){
		cin >> temp;
		if(temp=='S'){
			cin >> a >> b;
			adj[a].push_back({b,x});
			adj[b].push_back({a,x});
		}
		else if(temp=='Q'){
			cin  >> a >> b;
			v.clear();
			dfs(b,0,-1);
			bool amos=false;
			for(auto it:v){
				if(it==a) amos=true;
			}
			if(amos) cout << "yes\n";
			else cout << "no\n";
		}
		else{
			cin >> a;
			v.clear();
			dfs(a,0,-1);
			cout << v.size() << "\n";
		}
	}
}
																   
int32_t main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int t=1;
	//cin >> t;
	while(t--){
		solve();
	}
}
#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...