CF1983C.Have Your Cake and Eat It Too

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Alice、Bob 和 Charlie 想要分享一个被切成 nn 块的矩形蛋糕。每个人对每一块蛋糕的价值评估都不同。第 ii 块蛋糕对 Alice 的价值为 aia_i,对 Bob 的价值为 bib_i,对 Charlie 的价值为 cic_i。

所有 aia_i 的和、所有 bib_i 的和以及所有 cic_i 的和都相等,记为 tottot。

给定每个人对每块蛋糕的价值,你需要将蛋糕分给每个人一段连续的子区间。也就是说,分配给 Alice、Bob 和 Charlie 的子区间分别可以表示为 (la,ra)(l_a, r_a)、(lb,rb)(l_b, r_b) 和 (lc,rc)(l_c, r_c)。分配需要满足以下约束:

  • 没有任何一块蛋糕被分配给多于一个人,即 [la,ra][l_a, r_a]、[lb,rb][l_b, r_b] 和 [lc,rc][l_c, r_c] 这三个区间两两不相交。
  • ∑i=laraai,∑i=lbrbbi,∑i=lcrcci≥⌈tot3⌉\sum_{i = l_a}^{r_a} a_i, \sum_{i = l_b}^{r_b} b_i, \sum_{i = l_c}^{r_c} c_i \geq \lceil \frac{tot}{3} \rceil。

这里,⌈ab⌉\lceil \frac{a}{b} \rceil 表示向上取整除法,即不小于 a/ba/b 的最小整数。例如,⌈103⌉=4\lceil \frac{10}{3} \rceil = 4,⌈153⌉=5\lceil \frac{15}{3} \rceil = 5。

输入格式

第一行包含一个整数 tt,表示测试用例数量,1≤t≤1041 \le t \le 10^4。

对于每个测试用例:

第一行包含一个整数 nn,3≤n≤2⋅1053 \le n \le 2 \cdot 10^5。

接下来的三行每行包含 nn 个整数:

一行 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n,表示 Alice 对每块蛋糕的价值(1≤ai≤1061 \le a_i \le 10^6)。

一行 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n,表示 Bob 对每块蛋糕的价值(1≤bi≤1061 \le b_i \le 10^6)。

一行 nn 个整数 c1,c2,…,cnc_1, c_2, \ldots, c_n,表示 Charlie 对每块蛋糕的价值(1≤ci≤1061 \le c_i \le 10^6)。

保证 ∑i=1nai=∑i=1nbi=∑i=1nci\sum_{i = 1}^{n} a_i = \sum_{i = 1}^{n} b_i = \sum_{i = 1}^{n} c_i。

所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,如果无法满足条件,输出 −1-1。

否则,输出六个数——la,ra,lb,rb,lc,rcl_a, r_a, l_b, r_b, l_c, r_c,分别表示 Alice、Bob 和 Charlie 所获得子区间的起始和结束下标(下标从 11 开始)。

输入输出样例

  • 输入#1

    10
    5
    5 1 1 1 1
    1 1 5 1 1
    1 1 1 1 5
    6
    1 2 3 4 5 6
    5 6 1 2 3 4
    3 4 5 6 1 2
    4
    4 4 4 4
    4 4 4 4
    4 4 4 4
    5
    5 10 5 2 10
    9 6 9 7 1
    10 7 10 2 3
    3
    4 5 2
    6 1 4
    1 8 2
    3
    10 4 10
    8 7 9
    10 4 10
    7
    57113 65383 19795 53580 74452 3879 23255
    12917 16782 89147 93107 27365 15044 43095
    33518 63581 33565 34112 46774 44151 41756
    6
    6 3 1 8 7 1
    10 2 6 2 2 4
    10 9 2 1 2 2
    5
    5 5 4 5 5
    1 6 3 8 6
    2 4 1 9 8
    10
    1 1 1 1 1001 1 1 1001 1 1
    1 1 1 1 1 1 2001 1 1 1
    1 1 1 1 1 1001 1 1 1 1001

    输出#1

    1 1 2 3 4 5 
    5 6 1 2 3 4 
    -1
    -1
    1 1 3 3 2 2 
    -1
    1 2 3 4 5 7 
    3 6 1 1 2 2 
    1 2 3 4 5 5 
    1 5 6 7 8 10

说明/提示

在第一个测试用例中,三组数组的总和都是 99。每个人需要获得一段总价值至少为 ⌈93⌉=3\lceil \frac{9}{3} \rceil = 3 的蛋糕。

如果将区间 (1,1)(1, 1) 分配给 Alice,其总价值为 55,满足 ≥3\ge 3;将区间 (2,3)(2, 3) 分配给 Bob,其总价值为 1+5=61 + 5 = 6,满足 ≥3\ge 3;将区间 (4,5)(4, 5) 分配给 Charlie,其总价值为 1+5=61 + 5 = 6,也满足 ≥3\ge 3。每个人获得的蛋糕区间互不重叠,没有任何一块蛋糕被分配给多于一个人。

可以证明,对于第三个测试用例,无法满足题目要求的分配方式。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页