Advertisement
moisey312

Untitled

May 10th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.90 KB | None | 0 0
  1. import javafx.util.Pair;
  2.  
  3. import java.io.*;
  4. import java.lang.reflect.Array;
  5. import java.util.*;
  6.  
  7. public class Arsen {
  8.     static ArrayList<Integer>[] gr;
  9.     static boolean[] was;
  10.     static int[] color;
  11.     /*
  12.         static int nextInt() throws IOException {
  13.             while (!st.hasMoreTokens()) {
  14.                st = new StringTokenizer(br.readLine());
  15.             }
  16.             return Integer.parseInt(st.nextToken());
  17.         }
  18.     static BufferedReader br;
  19.     static StringTokenizer st = new StringTokenizer("");
  20.     */
  21.  
  22.     static boolean dfs(int v, int c) {
  23.         was[v] = true;
  24.         color[v] = c;
  25.         boolean ans = true;
  26.         for (Integer to : gr[v]) {
  27.             if (!was[to]) {
  28.                 ans &= dfs(to, 3 - c);
  29.             } else {
  30.                 if (color[v] == color[to]) {
  31.                     return false;
  32.                 }
  33.             }
  34.         }
  35.         return ans;
  36.     }
  37.  
  38.     public static void main(String[] args) {
  39.         Scanner in = new Scanner(System.in);
  40.         PrintWriter out = new PrintWriter(System.out);
  41.         int n = in.nextInt();
  42.         int m = in.nextInt();
  43.         gr = new ArrayList[n];
  44.         was = new boolean[n];
  45.         color = new int[n];
  46.         for (int i = 0; i < n; i++) {
  47.             gr[i] = new ArrayList<>();
  48.         }
  49.         for (int i = 0; i < m; i++) {
  50.             int from = in.nextInt() - 1;
  51.             int to = in.nextInt() - 1;
  52.             gr[from].add(to);
  53.             gr[to].add(from);
  54.         }
  55.         for (int i = 0; i < n; i++) {
  56.             if (!was[i]) {
  57.                 if (!dfs(i, 1)) {
  58.                     out.print("NO");
  59.                     out.close();
  60.                     return;
  61.                 }
  62.             }
  63.         }
  64.         out.println("YES");
  65.         for (int i = 0; i < n; i++) {
  66.             out.print(color[i] + " ");
  67.         }
  68.         out.close();
  69.  
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement