AT_2_stpc2025_2_l.Avoid Multiple

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN 的正整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N)。初始时,保证 AA 中不包含 MM 的倍数。

你需要进行 N−1N-1 次如下操作:

  1. 选择一个整数 ii,满足 1≤i≤∣A∣−11 \le i \le |A|-1;
  2. 将 AiA_i 和 Ai+1A_{i+1} 相加,合并为一个元素;
    • 更具体地,将 AA 替换为 (A1,…,Ai−1),(Ai+Ai+1),(Ai+2,…,A∣A∣)(A_1 ,\ldots,A_{i-1}),(A_{i}+A_{i+1}),(A_{i+2},\ldots,A_{|A|}) 的顺次连接。
    • 这样操作后,AA 的长度会减少 11。

请判断能否在操作过程中始终保证 AA 中不会出现 MM 的倍数,并完成 N−1N-1 次操作。若可以,请构造一组合法的操作序列。

输入格式

输入格式如下:

N M A1 A2 ⋯ ANN\ M\ A_1\ A_2\ \cdots\ A_N

输出格式

如果不存在满足条件的操作序列,请输出一行 No。

如果存在,请输出两行。第一行为 Yes,第二行为每次操作选择的 ii,依次用空格分隔。

若存在多组可行解,输出任意一组均可。

输入输出样例

  • 输入#1

    4 4
    1 2 3 1

    输出#1

    Yes
    2 1 1
  • 输入#2

    9 5
    3 2 3 2 1 3 2 3 2

    输出#2

    Yes
    4 3 2 2 2 2 1 1
  • 输入#3

    7 123456789
    69024393 73329927 23109098 63845999 71517732 113556305 79443702

    输出#3

    No

说明/提示

样例解释 1

对于该输入,对于初始 A=(1,2,3,1)A=(1,2,3,1):

  • 第一次操作选择 i=2i=2,此时 A=(1,5,1)A=(1,5,1)。
  • 第二次操作选择 i=1i=1,此时 A=(6,1)A=(6,1)。
  • 第三次操作选择 i=1i=1,此时 A=(7)A=(7)。

在此操作过程中,AA 中都不会出现 44 的倍数。

数据范围

  • 所有输入均为整数。
  • 3≤N≤2×1053 \le N \le 2\times 10^5
  • 2≤M≤1092 \le M \le 10^9
  • 1≤Ai<M1 \le A_i < M
  • AiA_i 不是 MM 的倍数。

由 ChatGPT 5 翻译

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

首页