luogu#B4024. [语言月赛 202408] 保持连接的方式

[语言月赛 202408] 保持连接的方式

题目背景

时光荏苒,小 S 和小 Y 也会散去。
而我们和一个人保持连接的方式就是记住,仅此而已。
—— [NOI 2024] 集合

风将这句话写在纸上,折成了纸飞机,扔出窗外。
纸飞机飞吧,飞向天空。

以此铭记。

题目描述

风有一只小木箱,内部被划分为了 nnmm 列的小格子,第 ii 行第 jj 列的小格子用 (i,j)(i,j) 表示。风将日记放在小木箱中。每一个小格子可以堆叠的放下至多 kk 份日记。风每次只能从小格子的最顶部取出日记,放入日记时,会放在某一个小格子的最顶端。

如果风希望取出被压在下面的日记,他需要先将上面的日记取出,再逐个放回。例如,某个小格子从底部至顶部,依次有编号为 1,2,3,4,51,2,3,4,5 的五份日记,风希望取出编号为 33 的日记,需要先依次取出编号为 5,45,4 的两份日记,拿走编号为 33 的日记后,再按照 4,54,5 的顺序放回。我们称移走 33 号日记需要移动 22 份日记。

在接下来的 tt 天,风每一天都会写日记,第 ii 天撰写的日记编号为 aia_i,将存放在 (xi,yi)(x_i,y_i) 中。如果 (xi,yi)(x_i,y_i) 已满,风需要从 (xi,yi)(x_i,y_i) 中先取走编号最小的日记并销毁,销毁后,将新的日记存放在 (xi,yi)(x_i,y_i) 顶部。如果存在多份编号最小的日记,销毁最靠上的一份。请问,每一天,风是否需要销毁日记?若需要,需要移动几份日记?

输入格式

第一行为四个正整数 n,m,k,tn,m,k,t

接下来 tt 行,每行三个正整数,第 ii 行为 ai,xi,yia_i,x_i,y_i,表示第 ii 天日记编号为 aia_i,存放在 (xi,yi)(x_i,y_i)

输出格式

输出 tt 行,每行一或两个整数,对于第 ii 行:

  • 若第 ii 天不需要销毁日记,输出一行一个整数 1-1
  • 若第 ii 天需要销毁日记,输出一行两个整数,由空格隔开,分别表示销毁的日记编号和需要移动的日记份数
2 2 3 5
3 1 1
4 1 1
2 1 1
5 1 1
1 1 1
-1
-1
-1
2 0
3 2

提示

对于 30%30\% 的测试数据,n=m=1n=m=1
对于另外 30%30\% 的测试数据,k=1k=1
对于 100%100\% 的测试数据,1n,m1001 \le n,m \le 1001k501 \le k \le 501t2×1051 \le t \le 2 \times 10^51ai1091 \le a_i \le 10^91xin1 \le x_i \le n1yim1 \le y_i \le m