atcoder#ABC299E. [ABC299E] Nearest Black Vertex

[ABC299E] Nearest Black Vertex

Score : 500500 points

Problem Statement

You are given a simple connected undirected graph with NN vertices and MM edges (a simple graph contains no self-loop and no multi-edges). For i=1,2,,Mi = 1, 2, \ldots, M, the ii-th edge connects vertex uiu_i and vertex viv_i bidirectionally.

Determine whether there is a way to paint each vertex black or white to satisfy both of the following conditions, and show one such way if it exists.

  • At least one vertex is painted black.
  • For every i=1,2,,Ki = 1, 2, \ldots, K, the following holds:- the minimum distance between vertex pip_i and a vertex painted black is exactly did_i.
  • the minimum distance between vertex pip_i and a vertex painted black is exactly did_i.

Here, the distance between vertex uu and vertex vv is the minimum number of edges in a path connecting uu and vv.

Constraints

  • 1N20001 \leq N \leq 2000
  • N1Mmin{N(N1)/2,2000}N-1 \leq M \leq \min\lbrace N(N-1)/2, 2000 \rbrace
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 0KN0 \leq K \leq N
  • 1p1<p2<<pKN1 \leq p_1 \lt p_2 \lt \cdots \lt p_K \leq N
  • 0diN0 \leq d_i \leq N
  • The given graph is simple and connected.
  • All values in the input are integers.

Input

The input is given from Standard Input in the following format:

NN MM

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

KK

p1p_1 d1d_1

p2p_2 d2d_2

\vdots

pKp_K dKd_K

Output

If there is no way to paint each vertex black or white to satisfy the conditions, print No. Otherwise, print Yes in the first line, and a string SS representing a coloring of the vertices in the second line, as shown below. Here, SS is a string of length NN such that, for each i=1,2,,Ni = 1, 2, \ldots, N, the ii-th character of SS is 11 if vertex ii is painted black and 00 if white.

Yes

SS

If multiple solutions exist, you may print any of them.

5 5
1 2
2 3
3 1
3 4
4 5
2
1 0
5 2
Yes
10100

One way to satisfy the conditions is to paint vertices 1,31, 3 black and vertices 2,4,52, 4, 5 white. Indeed, for each i=1,2,3,4,5i = 1, 2, 3, 4, 5, let AiA_i denote the minimum distance between vertex ii and a vertex painted black, and we have (A1,A2,A3,A4,A5)=(0,1,0,1,2)(A_1, A_2, A_3, A_4, A_5) = (0, 1, 0, 1, 2), where A1=0,A5=2A_1 = 0, A_5 = 2.

5 5
1 2
2 3
3 1
3 4
4 5
5
1 1
2 1
3 1
4 1
5 1
No

There is no way to satisfy the conditions by painting each vertex black or white, so you should print No.

1 0
0
Yes
1