#HDU4614. 花瓶与花

    ID: 4475 传统题 1000ms 256MiB 尝试: 41 已通过: 10 难度: 7 上传者: 标签>数据结构高级数据结构线段树基础算法二分难度提高+/省选-

花瓶与花

问题描述

Alice 非常受欢迎,每天都会收到很多花。她有 N 个花瓶,编号从 0 到 N-1。当她收到花时,她会尝试将花放入花瓶中,每个花瓶放一朵花。她会随机选择一个花瓶 A,并尝试在其中放入一朵花。如果花瓶是空的,她会将花放入其中;否则,她会跳过这个花瓶,然后尝试放入编号为 A+1、A+2,直到 N-1 的花瓶,直到没有花剩下或她已经尝试过编号为 N-1 的花瓶为止。剩下的花会被丢弃。当然,有时候她会清理花瓶。因为花瓶太多,她会随机选择清理编号从 A 到 B(A ≤ B)的花瓶。被清理的花瓶中的花会被丢弃。

输入

第一行包含一个整数 T,表示测试用例的数量。

对于每个测试用例,第一行包含两个整数 N1<N<50001N(1 < N < 50001)M1<M<50001M(1 < M < 50001)。N 表示花瓶的数量,M 表示 Alice 的操作次数。接下来的 M 行每行包含三个整数。每行的第一个整数是 K(1 或 2)。如果 K 是 1,那么后面跟着两个整数 A 和 F,表示 Alice 收到了 F 朵花,并尝试从编号为 A 的花瓶开始放入花。如果 K 是 2,那么后面跟着两个整数 A 和 B,表示 Alice 想要清理编号从 A 到 B(A ≤ B)的花瓶。

输出

对于每个 K 为 1 的操作,输出 Alice 放入第一朵花和最后一朵花的花瓶编号,用空格隔开。如果她无法放入任何一朵花,则输出 "Can not put any one."。对于每个 K 为 2 的操作,输出丢弃的花的数量。

每个测试用例结束后输出一个空行。

样例输入

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

样例输出

3 7  
2  
1 9  
4  
Can not put any one.
 
2 6  
2  
0 9  
4  
4 5  
2 3  

来源

HDU 4614

}