CF2144A.Cut the Array

入门

通过率:0%

AC君温馨提醒

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

题目描述

给定一个包含 nn 个非负整数的数组 [a1,a2,…,an][a_1, a_2, \dots, a_n]。

你需要将其切分为三个非空部分:前缀、中间部分和后缀。具体来说,你需要选择两个整数 ll 和 rr,满足 1≤l<r<n1 \le l < r < n,得到三部分:

  • 前缀部分包含第 11 个到第 ll 个元素(即 [a1,a2,…,al][a_1, a_2, \dots, a_l]);
  • 中间部分包含第 l+1l+1 个到第 rr 个元素(即 [al+1,al+2,…,ar][a_{l+1}, a_{l+2}, \dots, a_r]);
  • 后缀部分包含第 r+1r+1 个到第 nn 个元素(即 [ar+1,ar+2,…,an][a_{r+1}, a_{r+2}, \dots, a_n])。

令 s1,s2,s3s_1, s_2, s_3 分别表示上述三部分元素和对 33 取模的余数,即:

  • s1=(∑i=1lai) mod 3s_1 = (\sum\limits_{i=1}^{l} a_i) \bmod 3;
  • s2=(∑i=l+1rai) mod 3s_2 = (\sum\limits_{i=l+1}^{r} a_i) \bmod 3;
  • s3=(∑i=r+1nai) mod 3s_3 = (\sum\limits_{i=r+1}^{n} a_i) \bmod 3。

你的任务是找到一组 ll 和 rr,使得 s1,s2,s3s_1, s_2, s_3 要么全都不同,要么全都相等。

输入格式

第一行为一个整数 tt(1≤t≤10001 \le t \le 1000),表示测试用例的数量。

每个测试用例包含两行:

  • 第一行一个整数 nn(3≤n≤403 \le n \le 40);
  • 第二行为 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(0≤ai≤400 \le a_i \le 40)。

输出格式

对于每个测试用例,如果存在一组合适的整数 ll 和 rr(1≤l<r<n1 \leq l < r < n),输出这两个数(如果有多组解,输出任意一组即可)。如果不存在合适的切割方法,则输出两个 00。

输入输出样例

  • 输入#1

    4
    6
    1 2 3 4 5 6
    4
    1 3 3 7
    3
    2 1 0
    5
    7 2 6 2 4

    输出#1

    3 5
    0 0
    1 2
    2 4

说明/提示

参考样例中的说明:

  • 在第一个样例中,数组被分为 [1,2,3][1, 2, 3]、[4,5][4, 5]、[6][6],s1=s2=s3=0s_1 = s_2 = s_3 = 0;
  • 在第二个样例中,没有满足条件的切割方法;
  • 在第三个样例中,数组被分为 [2][2]、[1][1]、[0][0],s1=2s_1 = 2,s2=1s_2 = 1,s3=0s_3 = 0;
  • 在第四个样例中,数组被分为 [7,2][7, 2]、[6,2][6, 2]、[4][4],s1=0s_1 = 0,s2=2s_2 = 2,s3=1s_3 = 1。

由 ChatGPT 5 翻译

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

首页