Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class Main{
- public static void main(String[] args) throws Exception {
- BufferedReader in=new BufferedReader(new FileReader("input.txt"));
- FileWriter writer=new FileWriter("output.txt");
- String s=in.readLine();
- int n=Integer.parseInt(s);
- s=in.readLine();
- int m=Integer.parseInt(s);
- ArrayList<LinkedList<Integer>> lists=new ArrayList<>(n);
- for(int i=0;i<n;i++){
- lists.add(new LinkedList<>());
- }
- boolean[] visit=new boolean[n];
- int ans=0;
- for(int i=0;i<m;i++){
- s=in.readLine();
- StringTokenizer st=new StringTokenizer(s," ");
- int a=Integer.parseInt(st.nextToken())-1;
- int b=Integer.parseInt(st.nextToken())-1;
- lists.get(a).add(b);
- lists.get(b).add(a);
- }
- Stack<Integer> stack=new Stack<>();
- for(int i=0;i<n;i++){
- if(!visit[i]){
- visit[i]=true;
- ans++;
- stack.add(i);
- while(!stack.isEmpty()){
- int el=stack.pop();
- for(Integer j:lists.get(el)){
- if(!visit[j]){
- stack.add(j);
- visit[j]=true;
- }
- }
- }
- }
- }
- writer.write(Integer.toString(--ans));
- writer.flush();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement