AT_abc333_e.[ABC333E] Takahashi Quest

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

高桥君准备踏上冒险之旅。

在冒险过程中,将会发生 NN 个事件。第 ii 个事件 (1≤i≤N)(1 \leq i \leq N) 由整数对 (ti,xi)(t_i, x_i) (1≤ti≤2,1≤xi≤N)(1 \leq t_i \leq 2, 1 \leq x_i \leq N) 表示,具体如下:

  • 当 ti=1t_i = 1 时,发现了一个类型为 xix_i 的药水。高桥君可以选择拾取或丢弃这个药水。
  • 当 ti=2t_i = 2 时,遇到了一只类型为 xix_i 的怪物。如果高桥君持有类型为 xix_i 的药水,可以消耗一个药水击退怪物。若无法击退怪物,则高桥君会失败。

请判断高桥君是否能够击退所有怪物而不失败。

如果高桥君无法击退所有怪物,请输出 -1。

如果高桥君能够击退所有怪物,记高桥君在冒险过程中持有药水的最大数量为 KK。在所有不会失败的策略中,KK 的最小值记为 Kmin⁡K_{\min}。请输出 Kmin⁡K_{\min} 的值,并输出一种能够实现 Kmin⁡K_{\min} 且高桥君不会失败的行为方案。

输入格式

输入以如下格式从标准输入读入。

NN
t1t_1 x1x_1
t2t_2 x2x_2
⋮\vdots
tNt_N xNx_N

输出格式

如果高桥君无法击退所有怪物,输出 -1。

如果高桥君能够击退所有怪物,第一行输出 Kmin⁡K_{\min} 的值。第二行按顺序输出所有 ti=1t_i = 1 的事件,对于第 ii 个事件发现的药水,若拾取则输出 1,否则输出 0,用空格分隔。

若存在多种实现 Kmin⁡K_{\min} 且不会失败的行为方案,输出任意一种均可。

输入输出样例

  • 输入#1

    13
    1 2
    1 3
    1 1
    1 3
    1 2
    2 3
    1 3
    1 3
    2 3
    1 3
    2 2
    2 3
    2 1

    输出#1

    3
    1 1 1 0 0 1 0 1
  • 输入#2

    4
    2 3
    1 4
    2 1
    1 2

    输出#2

    -1
  • 输入#3

    30
    1 25
    1 2
    1 10
    1 18
    2 18
    1 11
    2 11
    1 21
    1 6
    2 2
    2 10
    1 11
    1 24
    1 11
    1 3
    1 2
    1 18
    2 25
    1 8
    1 10
    1 11
    2 18
    2 10
    1 10
    2 2
    1 24
    1 10
    2 10
    1 25
    2 6

    输出#3

    4
    1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • 1≤ti≤2 (1≤i≤N)1 \leq t_i \leq 2\ (1 \leq i \leq N)
  • 1≤xi≤N (1≤i≤N)1 \leq x_i \leq N\ (1 \leq i \leq N)
  • 输入均为整数

样例解释 1

输出示例对应如下行为:

  • 依次发现类型为 2,3,12, 3, 1 的药水,全部拾取。
  • 依次发现类型为 3,23, 2 的药水,全部不拾取。
  • 遇到类型为 33 的怪物,消耗一个类型 33 的药水击退。
  • 发现类型为 33 的药水,拾取。
  • 发现类型为 33 的药水,不拾取。
  • 遇到类型为 33 的怪物,消耗一个类型 33 的药水击退。
  • 发现类型为 33 的药水,拾取。
  • 遇到类型为 22 的怪物,消耗一个类型 22 的药水击退。
  • 遇到类型为 33 的怪物,消耗一个类型 33 的药水击退。
  • 遇到类型为 11 的怪物,消耗一个类型 11 的药水击退。

在此方案下,K=3K = 3。不存在 K≤2K \leq 2 且不会失败的方案,因此 Kmin⁡=3K_{\min} = 3。满足 K=3K = 3 且不会失败的行为方案有多种,输出任意一种均可。

样例解释 2

高桥君必然会在第一次遇到怪物时失败。

由 ChatGPT 4.1 翻译

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

首页