CF1717F Madoka and The First Session
题目描述
给出整数 $n$ 和 $m$ 对整数$(v_i,u_i)$。同时有一个序列 $B$ ,长度为 $n$ ,保证一开始全为 $0$ 。
然后对于每一对 $(v_i,u_i)$,可以执行两种操作中的一种:
1. $b_{v_i}\gets b_{v_i}-1,b_{u_i}\gets b_{u_i}+1$
2. $b_{v_i}\gets b_{v_i}+1,b_{u_i}\gets b_{u_i}-1$
然后还会给你两个序列 $A$,$S$ 长度均为 $n$,保证当 $s_i=0$ 时,$a_i=0$ 。
问你在在所有操作方案中,是否有一种可以使得对于任意的 $s_i=1$,都有 $a_i=b_i$。
输入格式
第 $1$ 行两个整数 $n$,$m$,($2\leq n\leq 10^4,1\leq m\leq 10^4$)。
第 $2$ 行 $n$ 个整数,表示 $S$ 数组,($0\leq s_i \leq 1$)。
第 $3$ 行 $n$ 个整数,表示 $A$ 数组,($|a_i| \leq m$)。
第 $4\sim n-3$ 行每行 $2$ 个整数,表示 $(u_i,v_i)$,($1 \leq v_i, u_i \leq n, v_i \ne u_i$)。同时保证不存在两组二元组 $i$ 和 $j$ (其中 $1\leq i < j\leq m$ ),有 $(v_i,u_i)=(v_j,u_j)$ 或 $(v_i,u_i)=(u_j,v_j) $。
输出格式
有解的话第一行输出 `YES`,然后下面 $m$ 行如果执行操作 $1$ 就输出 $(v_i,u_i)$,执行操作 $2$ 输出 $(u_i,v_i)$。如果无解则输出`NO`。
说明/提示
### 样例解释
在第一个示例中,数组 $b$ 将发生如下变化:$[0,0,0,0,0] \rightarrow [-1,0,0,1,0] \rightarrow [-2,0,0,1,1] \rightarrow [-2,0,1,0,1] \rightarrow [-2,0,2,0,0] \rightarrow [-2,0,2,1,-1]$。从 $1$ 到 $5$ 的所有 $i$ 中满足$a_i = b_i$ 。
在第二个示例中,我们只需将 $b_2 = 1$ 放在末尾即可,因为只有 $s_2 = 1$ 。
在第三个示例中,操作无法按要求进行。