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$