求救,too short on line 1
查看原帖
求救,too short on line 1
536651
TTTTLE楼主2022/11/10 09:11

rt

#include<bits/stdc++.h>
using namespace std;
const int N=3e4+34;
int f[N],d[N],T,siz[N];
char k;
char read_char(){
	char ch=getchar();
	while(ch!='C'&&ch!='M')
		ch=getchar();
	return ch;
}
int find(int x){
	if(x==f[x])
		return x;
	int res=find(f[x]);
	d[x]+=d[f[x]];
	return f[x]=res;
}
int main(){
	scanf("%d",&T);
	for(int i=1;i<=N;i++)
		f[i]=i,siz[i]=1;
	int i,j;
	while(T--){
		k=read_char();
		scanf("%d%d",&i,&j);
		if(k=='M'){
			i=find(i),j=find(j);
			if(i!=j)
				f[i]=j,d[i]=siz[j],siz[j]+=siz[i],siz[i]=0;
		}
		else{
			if(find(i)!=find(j)){
				puts("-1");
				continue;
			}
			printf("%d\n",i==j?0:abs(d[i]-d[j])-1);
		}
	}
	return 0;
}

一直是too short on line 1,输入换了好几次了,不管是cin还是读入函数都不行,也试过题解里的读入,也不行

2022/11/10 09:11
加载中...