A16608 | Gellyfish and Camellia Japonica
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Gellyfish 有一个长度为 $n$ 的整数数组 $c$,初始状态为 $c = [a_1, a_2, \ldots, a_n]$。接下来,Gellyfish 对数组进行 $q$ 次修改。每次修改由三个整数 $x_i, y_i, z_i$ 描述,表示将 $c_{z_i}$ 的值设置为 $\min(c_{x_i}, c_{y_i})$。经过 $q$ 次修改后,数组变为 $c = [b_1, b_2, \ldots, b_n]$。
Flower 知道最终数组 $b$ 和所有修改操作 $(x_i, y_i, z_i)$,但不知道初始数组 $a$。她希望找到任意一个满足条件的初始数组 $a$,或者判断不存在这样的 $a$。如果存在多个解,输出任意一个即可。
Flower 知道最终数组 $b$ 和所有修改操作 $(x_i, y_i, z_i)$,但不知道初始数组 $a$。她希望找到任意一个满足条件的初始数组 $a$,或者判断不存在这样的 $a$。如果存在多个解,输出任意一个即可。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
对于每个测试用例:
第一行包含两个整数 $n$ 和 $q$($1 \leq n, q \leq 3 \cdot 10^5$),分别表示数组大小和修改次数。
第二行包含 $n$ 个整数 $b_1, b_2, \ldots, b_n$($1 \leq b_i \leq 10^9$),表示修改后的数组。
接下来的 $q$ 行,每行包含三个整数 $x_i, y_i, z_i$($1 \leq x_i, y_i, z_i \leq n$),描述一次修改操作。
所有测试用例的 $n$ 之和与 $q$ 之和均不超过 $3 \cdot 10^5$。
对于每个测试用例:
第一行包含两个整数 $n$ 和 $q$($1 \leq n, q \leq 3 \cdot 10^5$),分别表示数组大小和修改次数。
第二行包含 $n$ 个整数 $b_1, b_2, \ldots, b_n$($1 \leq b_i \leq 10^9$),表示修改后的数组。
接下来的 $q$ 行,每行包含三个整数 $x_i, y_i, z_i$($1 \leq x_i, y_i, z_i \leq n$),描述一次修改操作。
所有测试用例的 $n$ 之和与 $q$ 之和均不超过 $3 \cdot 10^5$。
输出格式
对于每个测试用例:
如果存在初始数组 $a$,输出一行 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \leq a_i \leq 10^9$)。
否则,输出一行
如果存在初始数组 $a$,输出一行 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \leq a_i \leq 10^9$)。
否则,输出一行
-1 。输入输出样例
输入 #1
3 2 1 1 2 2 1 2 3 2 1 2 3 2 3 2 1 2 1 6 4 1 2 2 3 4 5 5 6 6 4 5 5 3 4 4 2 3 3
输出 #1
-1 1 2 3 1 2 3 4 5 5
**第一个测试用例:** 修改操作要求 $b_2 = \min(a_1, a_2)$,且 $b_1 = a_1$。但 $b_1 = 1 < b_2 = 2$,矛盾,无解。
**第二个测试用例:** 初始数组 $a = [1, 2, 3]$ 经过两次修改后得到 $b = [1, 2, 3]$。
**第三个测试用例:** 输出 $a = [1, 2, 3, 4, 5, 5]$ 是一个可行解。
**第二个测试用例:** 初始数组 $a = [1, 2, 3]$ 经过两次修改后得到 $b = [1, 2, 3]$。
**第三个测试用例:** 输出 $a = [1, 2, 3, 4, 5, 5]$ 是一个可行解。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?