LG#CF356A. Knight Tournament

提交1 通过1
通过率100%
时间限制2000ms
内存限制512MiB
    ID: 12131 传统题 2000ms 512MiB 尝试: 1 已通过: 1 难度: 普及+/提高- 上传者: 标签>GESPGESP强化C++c++编程题并查集区间跳转

题目描述

题目描述

好消息!Berland 国王 Berl II 决定举办一场盛大的骑士锦标赛,并已经召集全国骑士参加。你只是一名普通农夫,周末睡过了头,等赶到赛场时比赛已经结束,只能从朋友那里收集每一场战斗的记录。

锦标赛共有 nn 名骑士,他们的编号互不相同,依次为 11nn。比赛一共进行 mm 场。第 ii 场战斗开始时,所有仍未出局且编号处于区间 [li,ri][l_i,r_i] 内的骑士都会参战。该场只有编号为 xix_i 的骑士获胜并继续留在比赛中,其余参战骑士全部被 xix_i 击败并永久退出后续比赛。最后一场的胜者同时成为整场锦标赛的冠军。

若骑士 aa 与骑士 bb 同时参加某场战斗,并且该场胜者是 aa,就称骑士 bb 被骑士 aa 击败。请根据按时间排列的战斗记录,确定每一名骑士最终是被谁击败的;最终冠军没有击败者。

输入格式

第一行包含两个整数 n,mn,m,分别表示骑士数和战斗场数。

接下来 mm 行,每行包含三个整数 li,ri,xil_i,r_i,x_i,表示第 ii 场战斗由当时仍在比赛中且编号位于 [li,ri][l_i,r_i] 的骑士参加,唯一胜者为 xix_i

输入保证记录合法,并且每一场战斗至少有两名尚未出局的骑士参加。

输出格式

输出 nn 个整数。若第 ii 名骑士落败,则第 ii 个整数为击败他的骑士编号;若第 ii 名骑士是最终冠军,则第 ii 个整数为 00

4 3
1 2 1
1 3 3
1 4 4
3 1 4 0

样例说明 #1

骑士 2211 击败,之后 1133 击败,最后 3344 击败。

8 4
3 5 4
3 7 6
2 8 8
1 8 1
0 8 4 6 4 8 6 1
2 1
1 2 2
2 0

样例说明 #3

两名骑士进行唯一一场比赛,编号 22 的骑士成为冠军。

数据范围与约定

2n3×1052\le n\le 3\times 10^51m3×1051\le m\le 3\times 10^51li<rin1\le l_i<r_i\le nlixiril_i\le x_i\le r_i。全部战斗记录与比赛过程相符。