Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. public class Main{
  5. public static void main(String[] args) throws Exception {
  6. BufferedReader in=new BufferedReader(new FileReader("input.txt"));
  7. FileWriter writer=new FileWriter("output.txt");
  8. String s=in.readLine();
  9. int n=Integer.parseInt(s);
  10. s=in.readLine();
  11. int m=Integer.parseInt(s);
  12. ArrayList<LinkedList<Integer>> lists=new ArrayList<>(n);
  13. for(int i=0;i<n;i++){
  14. lists.add(new LinkedList<>());
  15. }
  16. boolean[] visit=new boolean[n];
  17. int ans=0;
  18. for(int i=0;i<m;i++){
  19. s=in.readLine();
  20. StringTokenizer st=new StringTokenizer(s," ");
  21. int a=Integer.parseInt(st.nextToken())-1;
  22. int b=Integer.parseInt(st.nextToken())-1;
  23. lists.get(a).add(b);
  24. lists.get(b).add(a);
  25. }
  26. Stack<Integer> stack=new Stack<>();
  27. for(int i=0;i<n;i++){
  28. if(!visit[i]){
  29. visit[i]=true;
  30. ans++;
  31. stack.add(i);
  32. while(!stack.isEmpty()){
  33. int el=stack.pop();
  34. for(Integer j:lists.get(el)){
  35. if(!visit[j]){
  36. stack.add(j);
  37. visit[j]=true;
  38. }
  39. }
  40. }
  41. }
  42. }
  43. writer.write(Integer.toString(--ans));
  44. writer.flush();
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement