|
|
back to boardPlease help.I cant find my bug(wa14:) Posted by moveUp 16 Sep 2009 23:00 import java.util.Scanner; public class Timus1272 { private static int[] p; private static int[] rank; public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int k = input.nextInt(); int m = input.nextInt(); p = new int[n + 1]; rank = new int[n + 1]; for (int i = 1; i <= n; i++) { p[i] = i; rank[i] = 1; } int bridge = 0; for (int i = 1; i <= k + m; i++) { int u = input.nextInt(); int v = input.nextInt(); if(FindRoot(u) == FindRoot(v)) continue; if(i > k ) bridge++; Union(u, v); } System.out.println(bridge); } private static void Union(int u, int v) { int r1 = FindRoot(u); int r2 = FindRoot(v); if(rank[r1] > rank[r2]){ p[v] = u; } else{ if(rank[r1] < rank[r2]){ p[u] = v; } else{ rank[r1]++; p[v] = u; } }
} private static int FindRoot(int u) { while(u != p[u]){ u = p[u]; } return u; } } |
|
|