Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Main {
- static Scanner in = new Scanner(System.in);
- static int n = in.nextInt();
- static int m = in.nextInt();
- static int[] used = new int[n + 1];
- static int k = 0;
- static ArrayList<Integer>[] array;
- static ArrayList<Integer>[] ans;
- public static void dfs(int v, int t) {
- used[v] = 1;
- ans[t].add(v);
- for (int i = 0; i < array[v].size(); i++) {
- int u = array[v].get(i);
- if (used[u] == 0) {
- dfs(u, t);
- }
- }
- }
- public static void main(String[] args) {
- array = new ArrayList[n + 1];
- ans = new ArrayList[n + 1];
- for (int i = 0; i < array.length; i++) {
- array[i] = new ArrayList<Integer>();
- }
- for (int i = 0; i < m; i++) {
- int r = in.nextInt();
- int r2 = in.nextInt();
- array[r].add(r2);
- array[r2].add(r);
- }
- for (int i = 1; i < n + 1; i++) {
- if (used[i] == 0) {
- ans[k] = new ArrayList<Integer>();
- dfs(i, k++);
- }
- }
- System.out.println(k);
- for (int i = 0; i < k; i++) {
- System.out.println(ans[i].size());
- for (int j = 0; j < ans[i].size(); j++) {
- System.out.print(ans[i].get(j) + " ");
- }
- System.out.println();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement