CFCF2160B.Distinct Elements
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个数组 c,定义 f(c) 为 c 中不同元素的个数。例如,f([1,2,2])=2,因为 [1,2,2] 中有两个不同的元素:1 和 2。另外,定义 c[i,j] 表示 c 下标从 i 到 j 的子数组(即 [ci,ci+1,…,cj])。
现在有一个长度为 n 的数组 a。定义长度为 n 的数组 b,其中 bi=f(a[1,i])+f(a[2,i])+…+f(a[i,i])。现在给定数组 b,请你构造任意一个满足 1≤ai≤n 的数组 a。保证至少存在一个可行解。
补充说明:数组 x 被称为数组 y 的子数组,当且仅当 x 可以通过从 y 的开头和结尾各删除若干(可能为零或全部)元素得到。
输入格式
输入包含多组测试数据。第一行是测试用例组数 t(1≤t≤104)。接下来是每组测试数据的描述。
每组测试数据的第一行包含一个整数 n(1≤n≤105),表示 a 和 b 的元素个数。
每组测试数据的第二行包含 n 个整数 b1,b2,…,bn(1≤bi≤1018)。
保证所有测试用例中 n 的总和不超过 105。
输出格式
对于每个测试用例,输出任意一个满足条件的 a,使得 1≤ai≤n。每组测试数据输出一行。
对于每一个测试用例,保证至少存在一个 a 满足条件。
输入输出样例
输入#1
4 3 1 3 6 3 1 3 5 3 1 3 4 4 1 2 3 7
输出#1
1 3 2 2 3 2 3 2 2 4 4 4 1
说明/提示
我们可以验证第二组测试数据的输出是正确的:
- b1=f([2])=1
- b2=f([2,3])+f([3])=2+1=3
- b3=f([2,3,2])+f([3,2])+f([2])=2+2+1=5