|
|
back to boardThis is my solution... But, I got WA on 14 tests... Please help me... Where my mistake is My solution : CONST MaxN = 10000; TYPE Mas = Array [1 .. MaxN] of integer; VAR A : Mas; n, k, m : integer; PROCEDURE Init; Var i : integer; Begin for i := 1 to n do A[i] := i; End; FUNCTION FindId(key : integer) : integer; Begin while A[key] <> key do key := A[key]; FindId := key; End; PROCEDURE Modify(p, q : integer); Var x, y : integer; Begin x := FindId(p); y := FindId(q); if x < y then A[y] := x else A[x] := y; End; PROCEDURE In_Data; Var i, v, u : integer; j, Ans, key : integer; Begin ReadLn(n, k, m); Init; Ans := 0; for i := 1 to k do begin ReadLn(v, u); Modify(v, u); end; for i := 1 to m do begin ReadLn(v, u); if A[v] <> A[u] then begin inc(Ans); key := A[u]; for j := 1 to n do if A[j] = key then A[j] := A[v]; end; end; WriteLn(Ans); End; PROCEDURE Run; Begin In_Data; End; BEGIN Run; END. Thanks... I'm sorry for my bad english... :( |
|
|