#P11080. [ROI 2019 Day 1] 拍照

[ROI 2019 Day 1] 拍照

题目背景

翻译自 ROI 2019 D1T1

参加奥林匹克竞赛的学生来自 nn 个地区,每个地区的代表团由 mm 名学生组成。每个代表团的学生穿着有自己地区特色的衣服,第 ii 个代表团穿的衣服颜色编号为 ii

摄影师决定给所有参赛者拍一张照片。为了组织拍摄照片,摄影师计划按以下方式进行操作:

舞台上有一排学生站立的位置,他们沿着舞台从 11mm 进行编号。摄影师计划轮流找一些代表团的领队,要求该代表团的几名学生上台。摄影师指定 LLRR 的值,选中的代表团的学生上台并站在从第 LL 个到第 RR 个(包括 LLRR)的所有位置上。如果这个位置上已经站了一名学生,则将这名学生请下台,让新的学生站上来。每个代表团的领队只能被摄影师找一次。

题目描述

为了在照片上的色彩更加和谐,摄影师希望照片上应该有 mm 名学生,而且穿着的衣服颜色必须按照给定的顺序排列。现在他想知道如何才能得到所需的照片。

编写一个程序,根据给定的颜色顺序,确定摄影师要找的代表团编号以及他们应该占据的位置的顺序,以制作期望中的照片。如果不可能,输出 -1

输入格式

第一行包含两个整数 mmnn

第二行包含 mm 个整数 a1,a2,,ama_1,a_2,\dots,a_m1ain1\le a_i\le n),表示摄影师希望照片上的学生衣服颜色的顺序。

输出格式

输出的第一行应包含一个整数 kk。如果无法拍出期望的照片,则此数字应为 1-1。否则,它应该是摄影师需要找的代表团的数量,以便拍出期望的照片。

k1k\ne-1 时,接下来的 kk 行应按照它们应该进行的顺序输出摄影师的请求。第 ii 个请求由三个整数 ci,Li,Ric_i,L_i,R_i 表示,其中 cic_i 是代表团的编号,LiL_iRiR_i 分别是代表团 cic_i 的学生应该占据的舞台上第一个和最后一个位置的编号。所有 cic_i 必须不同。

如果有多个解决方案,可以输出其中任意一个。

7 10
10 5 5 10 4 2 4
5
4 1 7
7 2 4
10 1 4
5 2 3
2 6 6
5 2
1 2 1 2 1
-1
6 5
1 1 4 5 1 4
-1

提示

样例 11 解释:

如果按照输出中的顺序让代表团的学生上台,那么每让一个代表团的学生上台后,舞台上的学生应该是这样排列的:

  1. 4 4 4 4 4 4 44\ 4\ 4\ 4\ 4\ 4\ 4
  2. 4 7 7 7 4 4 44\ 7\ 7\ 7\ 4\ 4\ 4
  3. 10 10 10 10 4 4 410\ 10\ 10\ 10\ 4\ 4\ 4
  4. 10 5 5 10 4 4 410\ 5\ 5\ 10\ 4\ 4\ 4
  5. 10 5 5 10 4 2 410\ 5\ 5\ 10\ 4\ 2\ 4
子任务 分值 mm\le nn\le
11 1515 100100
22 10410^4
33 55 3×1053\times10^5 22
44 33
55 2020 1010
66 4040 3×1053\times10^5