题库练习 「NOI2022」冒泡排序
← 上一题 下一题 →

A6721 | 「NOI2022」冒泡排序

来源NOI
时间限制2s
内存限制1024MB
通过 / 提交0/0

题目描述

小 Z 所研究的序列均由非负整数构成。它的长度为 $n$,且必须满足 $m$ 个附加条件。其中第 $i$ 个条件为:下标在 $[L_i, R_i]$ 中的数,即 $a_{L_i}, a_{L_{i+1}},\dots,a_{R_i}$ 这些数,其最小值**恰好为 $\boldsymbol{V_i}$**。

他知道冒泡排序时常会超时。所以,他想要知道,在所有满足附加条件的序列中,进行冒泡排序的交换次数的最少值是多少。

输入格式

从文件 bubble.in 中读入数据。

本题有多组数据。

输入的第一行包含一个正整数 $T$。

对于每组数据,第一行包含两个正整数 $n,m$。数据保证 $1 \leq n,m \leq 10^6$。

接下来 $m$ 行,每行三个非负整数 $L_i, R_i, V_i$,表示一组附加条件。数据保证 $1 \leq L_i \leq R_i \leq n$、$0 \leq V_i \leq 10^9$。

输出格式

输出到文件 bubble.out 中。

输出共 $T$ 行,每行一个整数。

对于每组数据,如果存在满足这 $m$ 个附加条件的序列,则输出在所有满足附加条件的序列中,冒泡排序交换次数的最小值。如果不存在满足所有条件的序列,则输出 $-1$。

输入输出样例

输入 #1
1
3 2
1 1 2022
2 3 39
输出 #1
1
C++ 编辑器
输入
输出