AT_arc190_a.[ARC190A] Inside or Outside

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

有一个整数序列 x=(x1,…,xN)x = (x_1, \ldots, x_N),初始时 x1=⋯=xN=0x_1 = \cdots = x_N = 0。

你需要对这个整数序列进行 MM 次操作。第 ii 次操作会给出一组整数 (Li,Ri)(L_i, R_i),满足 1≤Li≤Ri≤N1 \leq L_i \leq R_i \leq N,你需要从以下 33 种操作中恰好选择一种进行:

  • 操作 00:什么都不做。该操作的代价为 00。
  • 操作 11:对于所有满足 1≤j≤N1 \leq j \leq N 的整数 jj,如果 Li≤j≤RiL_i \leq j \leq R_i,则令 xj=1x_j = 1。该操作的代价为 11。
  • 操作 22:对于所有满足 1≤j≤N1 \leq j \leq N 的整数 jj,如果 Li≤j≤RiL_i \leq j \leq R_i 不成立,则令 xj=1x_j = 1。该操作的代价为 11。

你的目标是使得最终 x1=⋯=xN=1x_1 = \cdots = x_N = 1 成立。请判断该目标是否可以达成。如果可以达成,请在所有可行方案中,输出总代价最小的一种。

输入格式

输入按以下格式从标准输入读入:

NN MM
L1L_1 R1R_1
⋮\vdots
LML_M RMR_M

输出格式

如果目标无法达成,输出 -1。

如果目标可以达成,则输出总代价的最小值 KK,以及每次操作选择的操作类型(00 或 11 或 22),格式如下:

KK op1\mathrm{op}_1 ⋯\cdots opM\mathrm{op}_M

如果有多种总代价最小的方案,输出任意一种均可。

输入输出样例

  • 输入#1

    5 4
    2 4
    3 5
    1 4
    2 5

    输出#1

    2
    2 0 1 0
  • 输入#2

    5 4
    1 3
    1 5
    2 4
    3 5

    输出#2

    1
    0 1 0 0
  • 输入#3

    5 2
    1 3
    2 5

    输出#3

    2
    1 1
  • 输入#4

    5 2
    1 3
    2 4

    输出#4

    -1

说明/提示

限制

  • 1≤N≤10000001 \leq N \leq 1000000
  • 1≤M≤2000001 \leq M \leq 200000
  • 1≤Li≤Ri≤N1 \leq L_i \leq R_i \leq N
  • 所有输入的值均为整数

样例解释 1

输出样例中 xx 的变化如下:

  • 初始时 x=(0,0,0,0,0)x = (0,0,0,0,0)。
  • 第 11 次操作选择操作 22,x1,x5x_1, x_5 变为 11,x=(1,0,0,0,1)x = (1,0,0,0,1)。
  • 第 22 次操作选择操作 00,x=(1,0,0,0,1)x = (1,0,0,0,1)。
  • 第 33 次操作选择操作 11,x1,x2,x3,x4x_1, x_2, x_3, x_4 变为 11,x=(1,1,1,1,1)x = (1,1,1,1,1)。
  • 第 44 次操作选择操作 00,x=(1,1,1,1,1)x = (1,1,1,1,1)。

由 ChatGPT 4.1 翻译

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

首页