1 solutions
-
0
Pascal :
var fa,nu,so:array[1..30000]of longint; n,i,p,q,x,y:longint; ch:char; function find(t:longint):longint; var k:longint; begin if fa[t]=t then exit(t); k:=find(fa[t]); inc(nu[t],nu[fa[t]]-1); fa[t]:=k; exit(k); end; procedure main; begin readln(n); for i:=1 to 30000 do begin fa[i]:=i; nu[i]:=1; so[i]:=i; end; for i:=1 to n do begin readln(ch,x,y); p:=find(x);q:=find(y); if ch='C' then begin if p<>q then writeln(-1) else writeln(abs(nu[x]-nu[y])-1); end else begin fa[p]:=so[q]; inc(nu[p]); so[q]:=so[p]; end; end; end; begin main; end.
- 1
Information
- ID
- 18033
- Time
- 2000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By