AT_abc328_f [ABC328F] Good Set Query
题目描述
### 题目内容
给定 $Q$ 个三元组 $(a_1,b_1,d_1),(a_2,b_2,d_2),...,(a_Q,b_Q,d_Q)$ 。
集合 ${1,2,...,Q}$ 的一个子集 $S$ 被定义为**好的子集**,当且仅当存在一个长度为 $N$ 的序列 $(X_1,X_2,...,X_N)$ 满足以下条件:
> 对于所有 $i\in S$ , $X_{a_i}-X_{b_i}=d_i$ 。
将 $S$ 初始化为空集,对于 $i=1,2,...,Q$ 依次进行以下操作:
> 如果 $S\cup \{i\}$ 是一个好的集合,那么将 $S$ 替换成 $S\cup \{i\}$ 。
以**升序**输出 $S$ 中的所有元素。
输入格式
从标准输入流读入,格式如下:
$$
N\quad Q\\
a_1\quad b_1\quad d_1\\
a_2\quad b_2\quad d_2\\
.\\
.\\
.\\
a_Q\quad b_Q\quad d_Q\\
$$
输出格式
以**升序**按照以下格式输出集合 $S$ 中的所有元素 $(s_1,s_2,...,s_k)$ :
$$
s_1\quad s_2\quad ...\quad s_k
$$
说明/提示
* 所有输入元素为整数。
* $1\le N,Q\le 2\times 10^5$
* $1\le a_i,b_i\le N$
* $-10^9\le d_i\le 10^9$