AT_tupc2022_j.AMidA

通过率:0%

AC君温馨提醒

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

题目描述

有一个由 NN 条竖线组成的阿弥陀签。每条竖线的长度为 2M+1 [cm]2M+1\ [\mathrm{cm}],横线需要满足下列条件:

  • 横线的端点只能出现在从上往下数的 1,2,…,2M [cm]1,2,\dots,2M\ [\mathrm{cm}] 高度上,并且横线两端的高度需相等。
  • 所有横线仅连接相邻的 22 条竖线。
  • 在同一高度上至多只能有 11 条横线。

初始情况下,该阿弥陀签有 MM 条横线。第 jj (j=1,2,…,M)(j=1,2,\dots,M) 条横线画在从上往下数第 2j [cm]2j\ [\mathrm{cm}] 的位置,连接从左往右数第 aja_j 条竖线和第 aj+1a_j+1 条竖线。

对于这个阿弥陀签,可以进行任意次(00 次也可以)如下操作:

  • 选择尚未被画横线的高度 hh,以及 1≤b≤N−11\leq b\leq N-1 的整数 bb。在从上往下数第 h [cm]h\ [\mathrm{cm}] 的位置,添加连接从左往右数第 bb 条和第 b+1b+1 条竖线的横线。

若对于所有 i=1,2,…,Ni=1,2,\dots,N,从左往右数第 ii 条竖线出发,结果都在左边第 ii 条竖线结束,则称该阿弥陀签为“恒等的阿弥陀签”。请你求出,为了把给定的阿弥陀签变成恒等的阿弥陀签,最少需要进行多少次操作,并给出一种达到最小操作次数的方案。
在本题约束条件下,始终存在能将其变为恒等的阿弥陀签的操作方案。

输入格式

输入格式如下所示,通过标准输入给出。

NN MM a1a_1 a2a_2 …\dots aMa_M

输出格式

请输出最小操作次数 ansans,共 1+ans1+ans 行。
第 11 行输出 ansans。接下来的 j+1j+1 行(j=1,2,…,ansj=1,2,\dots,ans),每行输出 hj bjh_j\ b_j,表示第 jj 次操作在从上往下数第 hj [cm]h_j\ [\mathrm{cm}] 处添加一条连接左起第 bjb_j 条与第 bj+1b_j+1 条竖线的横线。各元素之间用空格隔开。

输入输出样例

  • 输入#1

    3 2
    1 2

    输出#1

    2
    1 1
    3 2
  • 输入#2

    5 4
    2 3 4 1

    输出#2

    4
    1 2
    3 3
    5 4
    7 1
  • 输入#3

    100000 4
    1 2 2 1

    输出#3

    0

说明/提示

样例解释 1

此外,输出

2
1 2
3 1

也是可以的。

样例解释 3

在有些情况下,不进行操作也已经是恒等的阿弥陀签了。

数据范围

  • 2≤N≤2×1052 \leq N \leq 2\times 10^5
  • 1≤M≤2×1051\leq M\leq 2\times 10^5
  • 1≤aj<N (j=1,2,…,M)1 \leq a_j < N\ (j=1,2,\dots,M)
  • 所有输入均为整数。

由 ChatGPT 5 翻译

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

首页