编程题
### 问题描述 为迎接即将到来的校庆,志愿者需要将花摆放在正确的点位上。点位总共有 $n$ 个,呈线性排列,编号从左到右依次为 $1$ 到 $n$, 且一个点位只能摆放至多一盆花。 现提供两种操作: 1. 以点位 $a$ 为起始点(包括点位 $a$)向右摆放共计 $b$ 盆花。在摆放过程中,若该点位已经摆放了花,则跳过该点位。 2. 移除点位 $L$ 到点位 $R$ 区间内的所有花(包括端点)。 ### 输入格式 第一行输入为 $n$ 和 $m$,表示点位的数量和操作次数。 之后的 $m$ 行,每行输入三个整数 $F_{i}$,$A_{i}$ 和 $B_{i}$,其中 $(1\leq i \leq n)$。 $(1\leq n,m \leq100000,1\leq F_{i} \leq2)$。 ### 输出格式 对于每次操作: 若是第一种操作,如果摆得下花,输出两个整数 $X$ 和 $Y$,两个数之间用空格隔开,表示在对应操作下的最小摆花区间(即区间端点均可摆花);如果摆不下花,则输出一个 $0$ 即可。 若是第二种操作,你需要输出一个整数 $C$,表示移除前该区间内有多少花(包括端点)。 ### 样例输入 ```text 5 6 1 2 3 2 3 3 1 1 2 1 2 1 1 1 1 2 1 5 ``` ### 样例输出 ```text 2 4 1 1 3 5 5 0 5 ``` ### 说明 对于第一种操作,从点位 $a$ 一直摆放到点位 $n$ 所需要的花不足 $b$ 盆,则忽略多余的花。 对于第二种操作,输入保证 $L\leq R$。
查看答案
赣ICP备20007335号-2