Advertisement
SilvanM

Solution for "Important Stops"

Aug 8th, 2023
1,444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.59 KB | None | 0 0
  1. import algorithms.*;
  2. import java.util.*;
  3.  
  4. class Main {
  5.   static ArrayList<ArrayList<Integer>> g;
  6.   static int m, n;
  7.  
  8.   public static void main(String[] args) {
  9.       // Uncomment this line if you want to read from a file
  10.       In.open("diff/test1.in");
  11.       Out.compareTo("diff/test1.out");
  12.  
  13.       int t = In.readInt();
  14.       for (int i = 0; i < t; i++) {
  15.           testCase();
  16.       }
  17.      
  18.       In.close();
  19.   }
  20.  
  21.   public static void testCase() {
  22.       // Input using In.java class
  23.       n = In.readInt();
  24.       m = In.readInt();
  25.      
  26.       g = new ArrayList<>();
  27.      
  28.       for (int i = 0; i < n; i++) {
  29.         g.add(new ArrayList<>());
  30.       }
  31.      
  32.       for (int i = 0; i < m; i++) {
  33.         int u = In.readInt();
  34.         int v = In.readInt();
  35.         g.get(u).add(v);
  36.         g.get(v).add(u);
  37.       }
  38.      
  39.       int ZHKs = countZHK(-1);
  40.      
  41.       String result = "";
  42.      
  43.       for (int i = 0; i < n; i++) {
  44.         if (countZHK(i) > ZHKs) {
  45.           result += String.format("%d ",i);
  46.         }
  47.       }
  48.      
  49.       Out.println(result.equals("") ? -1 : result);
  50.   }
  51.  
  52.   public static int countZHK(int without) {
  53.     boolean[] vis = new boolean[n];
  54.     int ZHKs = 0;
  55.    
  56.     for (int i = 0; i < n; i++) {
  57.       if (!vis[i] && i != without) {
  58.         ZHKs++;
  59.         DFS(i, vis, without);
  60.       }
  61.     }
  62.    
  63.     return ZHKs;
  64.   }
  65.  
  66.   public static void DFS(int v, boolean[] vis, int without) {
  67.     vis[v] = true;
  68.    
  69.     for (int u : g.get(v)) {
  70.       if (u != without && !vis[u]) {
  71.         DFS(u, vis, without);
  72.       }
  73.     }
  74.   }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement