AT_arc182_d.[ARC182D] Increment Decrement Again

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

我们称任意相邻的 22 个元素都不相同的整数序列为好序列。

给定长度为 NN 的好序列 A=(A1,A2,…,AN)A=(A_1,A_2,\dots,A_N) 和 B=(B1,B2,…,BN)B=(B_1,B_2,\dots,B_N)。其中,A,BA,B 的每个元素都在 00 以上且小于 MM。

你可以对 AA 进行任意次(包括 00 次)如下操作:

  • 选择 11 到 NN 之间的一个整数 ii,并执行以下两种操作之一:
    • 令 Ai←(Ai+1) mod MA_i\leftarrow (A_i+1)\bmod M。
    • 令 Ai←(Ai−1) mod MA_i\leftarrow (A_i-1)\bmod M。其中,(−1) mod M=M−1(-1)\bmod M=M-1。

但不能进行使 AA 变成不是好序列的操作。

请判断是否可以将 AA 变为 BB,如果可以,求出将 AA 变为 BB 所需的最小操作次数。

输入格式

输入通过标准输入按以下格式给出。

NN MM A1A_1 A2A_2 …\dots ANA_N B1B_1 B2B_2 …\dots BNB_N

输出格式

如果不可能,将 -1 输出。

如果可能,请输出最小操作次数的整数。

输入输出样例

  • 输入#1

    3 9
    2 0 1
    4 8 1

    输出#1

    3
  • 输入#2

    3 9
    1 8 2
    1 8 2

    输出#2

    0
  • 输入#3

    24 182
    128 115 133 52 166 92 164 119 143 99 54 162 86 2 59 166 24 78 81 5 109 67 172 99
    136 103 136 28 16 52 2 85 134 64 123 74 64 28 85 161 19 74 14 110 125 104 180 75

    输出#3

    811

说明/提示

限制条件

  • 2≤N≤2×1052\leq N\leq 2\times 10^5
  • 2≤M≤1062\leq M\leq 10^6
  • 0≤Ai,Bi<M (1≤i≤N)0\leq A_i,B_i < M\ (1\leq i\leq N)
  • Ai≠Ai+1 (1≤i≤N−1)A_i\ne A_{i+1}\ (1\leq i\leq N-1)
  • Bi≠Bi+1 (1≤i≤N−1)B_i\ne B_{i+1}\ (1\leq i\leq N-1)
  • 输入均为整数

样例解释 1

如下操作可以在 33 次内达成目标。

  • 令 A1←(A1+1) mod MA_1\leftarrow (A_1+1)\bmod M,此时 A=(3,0,1)A=(3,0,1)。
  • 令 A2←(A2−1) mod MA_2\leftarrow (A_2-1)\bmod M,此时 A=(3,8,1)A=(3,8,1)。
  • 令 A1←(A1+1) mod MA_1\leftarrow (A_1+1)\bmod M,此时 A=(4,8,1)A=(4,8,1)。

无法在 22 次及以下操作内达成目标,因此答案为 33。

例如,第一次操作如果令 A2←(A2+1) mod MA_2\leftarrow (A_2+1)\bmod M,则 A=(2,1,1)A=(2,1,1),此时 AA 不是好序列,因此该操作不允许。

样例解释 2

一开始 AA 和 BB 就相等的情况也是可能的。

由 ChatGPT 4.1 翻译

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

首页