CF482B Interesting Array
题目描述
我们将一个由 $n$ 个非负整数组成的数组 $a[1], a[2], ..., a[n]$ 称为“有趣数组”,如果它满足 $m$ 个约束条件。第 $i$ 个约束包含三个整数 $l_i$、$r_i$、$q_i$($1 \leq l_i \leq r_i \leq n$),表示从 $a[l_i]$ 到 $a[r_i]$ 这段区间内所有元素的按位与运算结果应等于 $q_i$,即
$$
a[l_i] \& a[l_i+1] \& \cdots \& a[r_i] = q_i
$$
你的任务是,输出任意一个满足条件的“有趣数组”,或者说明这样的数组不存在。
表达式 $x\&y$ 表示 $x$ 和 $y$ 的按位与运算。在 C++、Java 和 Python 编程语言中,这一操作用字符 “&” 表示,在 Pascal 语言中用 “and” 表示。
输入格式
第一行包含两个整数 $n$ 和 $m$,分别表示数组的长度和约束的数量。
接下来 $m$ 行,每行包含三个整数 $l_i$、$r_i$、$q_i$,含义如上所述。
输出格式
如果存在满足条件的“有趣数组”,请输出一行 $n$ 个用空格分隔的非负整数,依次表示 $a[1], a[2], ..., a[n]$。
如果不存在这样的数组,请输出一行 “NO”。
说明/提示
无。
由 ChatGPT 5 翻译