/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
int p[200005];
int ra[200005];
int find(int x){
if(x==p[x])return x;
return p[x]=find(p[x]);
}
void un(int x,int y){
int px;
int py;
px=find(x);
py=find(y);
if(px==py)return;
if(ra[px]>ra[py]){
p[py]=px;
}else if(ra[px]<ra[py]){
p[px]=py;
}else{
ra[px]++;
p[py]=px;
}
return;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i = 0;i<200005;i++)p[i]=i;
while(m--){
char t;
int a,b;
cin>>t>>a>>b;
if(t=='A'){
un(a,n+b);
un(b,n+a);
}else if(t=='R'){
un(a,b);
un(a+n,b+n);
}else{
int p1 = find(a);
int p2 = find(b);
if(p1==p2){
cout<<"R"<<endl;
continue;
}
p1 = find(a+n);
if(p1==p2){
cout<<"A"<<endl;
continue;
}
cout<<"?"<<endl;
}
}
}
# | 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... |