305154: CF981E. Addition on Segments

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Addition on Segments

题意翻译

- 给定一个长度为 $n$ 的序列,和 $q$ 条操作。 - 序列初始为全 $0$。$q$ 条操作都形如 $l, r, x$,意为给序列 $[l, r]$ 区间内的每个数加上 $x$。 - 对于 $1 \leq k \leq n$,求有多少个 $k$ 满足从 $q$ 条操作中选出若干条操作后序列的最大值为 $k$。(对于一个 $k$,一条操作最多进行一次)。 - 第一行输出满足条件的 $k$ 的个数,第二行输出所有的 $k$。 - $1 \leq n, q \leq 10^4$。

题目描述

Grisha come to a contest and faced the following problem. You are given an array of size $ n $ , initially consisting of zeros. The elements of the array are enumerated from $ 1 $ to $ n $ . You perform $ q $ operations on the array. The $ i $ -th operation is described with three integers $ l_i $ , $ r_i $ and $ x_i $ ( $ 1 \leq l_i \leq r_i \leq n $ , $ 1 \leq x_i \leq n $ ) and means that you should add $ x_i $ to each of the elements with indices $ l_i, l_i + 1, \ldots, r_i $ . After all operations you should find the maximum in the array. Grisha is clever, so he solved the problem quickly. However something went wrong inside his head and now he thinks of the following question: "consider we applied some subset of the operations to the array. What are the possible values of the maximum in the array?" Help Grisha, find all integers $ y $ between $ 1 $ and $ n $ such that if you apply some subset (possibly empty) of the operations, then the maximum in the array becomes equal to $ y $ .

输入输出格式

输入格式


The first line contains two integers $ n $ and $ q $ ( $ 1 \leq n, q \leq 10^{4} $ ) — the length of the array and the number of queries in the initial problem. The following $ q $ lines contain queries, one per line. The $ i $ -th of these lines contains three integers $ l_i $ , $ r_i $ and $ x_i $ ( $ 1 \leq l_i \leq r_i \leq n $ , $ 1 \leq x_i \leq n $ ), denoting a query of adding $ x_i $ to the segment from $ l_i $ -th to $ r_i $ -th elements of the array, inclusive.

输出格式


In the first line print the only integer $ k $ , denoting the number of integers from $ 1 $ to $ n $ , inclusive, that can be equal to the maximum in the array after applying some subset (possibly empty) of the given operations. In the next line print these $ k $ integers from $ 1 $ to $ n $ — the possible values of the maximum. Print these integers in increasing order.

输入输出样例

输入样例 #1

4 3
1 3 1
2 4 2
3 4 4

输出样例 #1

4
1 2 3 4 

输入样例 #2

7 2
1 5 1
3 7 2

输出样例 #2

3
1 2 3 

输入样例 #3

10 3
1 1 2
1 1 3
1 1 6

输出样例 #3

6
2 3 5 6 8 9 

说明

Consider the first example. If you consider the subset only of the first query, the maximum is equal to $ 1 $ . If you take only the second query, the maximum equals to $ 2 $ . If you take the first two queries, the maximum becomes $ 3 $ . If you take only the fourth query, the maximum becomes $ 4 $ . If you take the fourth query and something more, the maximum becomes greater that $ n $ , so you shouldn't print it. In the second example you can take the first query to obtain $ 1 $ . You can take only the second query to obtain $ 2 $ . You can take all queries to obtain $ 3 $ . In the third example you can obtain the following maximums: - You can achieve the maximim of $ 2 $ by using queries: $ (1) $ . - You can achieve the maximim of $ 3 $ by using queries: $ (2) $ . - You can achieve the maximim of $ 5 $ by using queries: $ (1, 2) $ . - You can achieve the maximim of $ 6 $ by using queries: $ (3) $ . - You can achieve the maximim of $ 8 $ by using queries: $ (1, 3) $ . - You can achieve the maximim of $ 9 $ by using queries: $ (2, 3) $ .

Input

题意翻译

- 给定一个长度为 $n$ 的序列,和 $q$ 条操作。 - 序列初始为全 $0$。$q$ 条操作都形如 $l, r, x$,意为给序列 $[l, r]$ 区间内的每个数加上 $x$。 - 对于 $1 \leq k \leq n$,求有多少个 $k$ 满足从 $q$ 条操作中选出若干条操作后序列的最大值为 $k$。(对于一个 $k$,一条操作最多进行一次)。 - 第一行输出满足条件的 $k$ 的个数,第二行输出所有的 $k$。 - $1 \leq n, q \leq 10^4$。

加入题单

上一题 下一题 算法标签: