Nearest Black Vertex

AtCoder
IDabc299_e
Time2000ms
Memory256MB
Difficulty
You are given a simple connected undirected graph with $N$ vertices and $M$ edges (a simple graph contains no self-loop and no multi-edges). For $i = 1, 2, \ldots, M$, the $i$\-th edge connects vertex $u_i$ and vertex $v_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, \ldots, K$, the following holds: * the minimum distance between vertex $p_i$ and a vertex painted black is exactly $d_i$. Here, the distance between vertex $u$ and vertex $v$ is the minimum number of edges in a path connecting $u$ and $v$. ## Constraints * $1 \leq N \leq 2000$ * $N-1 \leq M \leq \min\lbrace N(N-1)/2, 2000 \rbrace$ * $1 \leq u_i, v_i \leq N$ * $0 \leq K \leq N$ * $1 \leq p_1 \lt p_2 \lt \cdots \lt p_K \leq N$ * $0 \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: $N$ $M$ $u_1$ $v_1$ $u_2$ $v_2$ $\vdots$ $u_M$ $v_M$ $K$ $p_1$ $d_1$ $p_2$ $d_2$ $\vdots$ $p_K$ $d_K$ [samples]
Samples
Input #1
5 5
1 2
2 3
3 1
3 4
4 5
2
1 0
5 2
Output #1
Yes
10100

One way to satisfy the conditions is to paint vertices $1, 3$ black and vertices $2, 4, 5$ white.  
Indeed, for each $i = 1, 2, 3, 4, 5$, let $A_i$ denote the minimum distance between vertex $i$ and a vertex painted black, and we have $(A_1, A_2, A_3, A_4, A_5) = (0, 1, 0, 1, 2)$, where $A_1 = 0, A_5 = 2$.
Input #2
5 5
1 2
2 3
3 1
3 4
4 5
5
1 1
2 1
3 1
4 1
5 1
Output #2
No

There is no way to satisfy the conditions by painting each vertex black or white, so you should print `No`.
Input #3
1 0
0
Output #3
Yes
1
API Response (JSON)
{
  "problem": {
    "name": "Nearest Black Vertex",
    "description": {
      "content": "You are given a simple connected undirected graph with $N$ vertices and $M$ edges (a simple graph contains no self-loop and no multi-edges).   For $i = 1, 2, \\ldots, M$, the $i$\\-th edge connects vert",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "abc299_e"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "You are given a simple connected undirected graph with $N$ vertices and $M$ edges (a simple graph contains no self-loop and no multi-edges).  \nFor $i = 1, 2, \\ldots, M$, the $i$\\-th edge connects vert...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments