CF1697F.Too Many Constraints
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are asked to build an array a, consisting of n integers, each element should be from 1 to k.
The array should be non-decreasing (ai≤ai+1 for all i from 1 to n−1).
You are also given additional constraints on it. Each constraint is of one of three following types:
- 1 i x: ai should not be equal to x;
- 2 i j x: ai+aj should be less than or equal to x;
- 3 i j x: ai+aj should be greater than or equal to x.
Build any non-decreasing array that satisfies all constraints or report that no such array exists.
你需要构造一个由 n 个整数组成的数组 a,其中每个元素取值范围为 1 到 k(含端点)。
该数组必须是非递减的(即对所有从 1 到 n−1 的 i,满足 ai≤ai+1)。
此外,你还需满足若干额外约束条件。每条约束属于以下三种类型之一:
- 1 i x:ai 不能等于 x;
- 2 i j x:ai+aj 必须 小于或等于 x;
- 3 i j x:ai+aj 必须 大于或等于 x。
请构造出任意一个满足所有约束的非递减数组;若不存在这样的数组,则报告无解。
输入格式
The first line contains a single integer t (1≤t≤104) — the number of testcases.
The first line of each testcase contains three integers n,m and k (2≤n≤2⋅104; 0≤m≤2⋅104; 2≤k≤10).
The i-th of the next m lines contains a description of a constraint. Each constraint is of one of three following types:
- 1 i x (1≤i≤n; 1≤x≤k): ai should not be equal to x;
- 2 i j x (1≤i<j≤n; 2≤x≤2⋅k): ai+aj should be less than or equal to x;
- 3 i j x (1≤i<j≤n; 2≤x≤2⋅k): ai+aj should be greater than or equal to x.
The sum of n over all testcases doesn't exceed 2⋅104. The sum of m over all testcases doesn't exceed 2⋅104.
第一行包含一个整数 t(1≤t≤104)—— 表示测试用例的数量。
每个测试用例的第一行包含三个整数 n、m 和 k(2≤n≤2⋅104;0≤m≤2⋅104;2≤k≤10)。
接下来的 m 行中,第 i 行描述一条约束。每条约束属于以下三种类型之一:
- 1 i x(1≤i≤n;1≤x≤k):ai 不应等于 x;
- 2 i j x(1≤i<j≤n;2≤x≤2⋅k):ai+aj 应小于或等于 x;
- 3 i j x(1≤i<j≤n;2≤x≤2⋅k):ai+aj 应大于或等于 x。
所有测试用例的 n 之和不超过 2⋅104。所有测试用例的 m 之和不超过 2⋅104。
输出格式
For each testcase, determine if there exists a non-decreasing array that satisfies all conditions. If there is no such array, then print -1. Otherwise, print any valid array — n integers from 1 to k.
对于每个测试用例,判断是否存在一个非递减数组满足所有条件。如果不存在这样的数组,则输出 -1;否则,输出任意一个合法数组——即由 n 个介于 1 到 k 之间的整数组成的数组。
输入输出样例
输入#1
4 4 0 4 2 2 3 3 1 2 3 1 2 2 3 3 2 1 1 1 2 2 3 2 3 2 3 2 5 5 5 3 2 5 7 2 4 5 10 3 4 5 6 3 3 4 7 2 1 5 7
输出#1
1 2 3 4 1 3 -1 1 2 2 5 5
输入解题思路,AI测评打分。不知道怎么写?