#P12759. [POI 2018 R2] 转账 Transfers

[POI 2018 R2] 转账 Transfers

题目背景

翻译来自于 LibreOJ

题目描述

题目译自 XXV Olimpiada Informatyczna — II etap Przelewy

Bajtazar 和朋友们计划清算最近一起露营的费用。他们共有 nn 人,第 ii 人的银行账户初始余额为 xix_i 拜托币,结算后应为 yiy_i 拜托币。

拜托尼亚的银行转账费用高昂,幸好银行推出了一项奇特的促销活动。每人可在银行系统内任意添加好友,关系对称:若 AABB 设为好友,则 BB 自动将 AA 设为好友,且无人可自设为好友。促销允许每人免费向所有好友同时转账 11 拜托币,无次数限制。

朋友们构建了一个包含 n1n-1 条好友关系的网络,确保任意两人直接或间接相连(即通过普通转账可实现任意两人间资金转移)。他们想知道,是否仅用促销的转账操作,就能通过此网络完成结算。银行允许账户余额为负。

输入格式

第一行包含一个整数 nn (n2)(n \geq 2),表示朋友人数,编号为 11nn

第二行包含 nn 个整数 x1,x2,,xnx_1, x_2, \ldots, x_n (0xiW)(0 \leq x_i \leq W),表示初始余额。

第三行包含 nn 个整数 y1,y2,,yny_1, y_2, \ldots, y_n (0yiW)(0 \leq y_i \leq W),表示目标余额。

接下来的 n1n-1 行定义好友关系,第 ii 行包含两个整数 ai,bia_i, b_i (1ai,bin,aibi)(1 \leq a_i, b_i \leq n, a_i \neq b_i),表示编号为 aia_ibib_i 的朋友互为好友。

输出格式

第一行输出 TAKNIE,表示是否仅用促销转账完成结算。

若为 TAK,第二行输出一个整数,表示所需的最少转账操作次数。

5
4 3 2 1 0
4 0 3 3 0
1 3
2 1
4 2
5 1
TAK
4

提示

下表展示了一种用四次促销转账完成结算的方式,各行表示每次转账后的账户余额。

朋友编号 11 22 33 44 55
初始余额 44 33 22 11 00
22 转账(至 1,41,4 55 11 22
55 转账(至 11 66 1-1
22 再次转账(至 1,41,4 77 1-1 33
11 转账(至 2,3,52,3,5 44 00 33 00

附加样例

  1. n=3,x1=1,x2=x3=y1=y2=y3=0n=3, x_1=1, x_2=x_3=y_1=y_2=y_3=0,答案 NIE
  2. n=1000n=1000,好友网络为星形,答案 TAK
  3. n=1000000n=1000000,好友网络为线形,答案 TAK

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 n10,W5n \leq 10, W \leq 5 2020
22 n1000,W1000000n \leq 1000, W \leq 1000000 3030
33 n1000000,W1000000n \leq 1000000, W \leq 1000000 5050