[Poi2000]三臂起重机
时间限制:1s 空间限制:128MB
题目描述
一架三臂起重机正在把集装箱放进货车车箱。车箱由1至n编号,每节车箱上仅能放一个集装箱。一次移动,起重机能把三个集装箱从仓库里拿出并放进车箱i、i+p、i+p+q或i、i+q、i+p+q(p、q为大于等于1的常数)。起重机必须放满货车的前n节车箱(货车有n+p+q节车箱)。放置的方案由一系列说明组成,每条说明指示起重机的一次移动,用三个整数(x,y,z)表示这次接受集装箱的车箱的编号,其中1≤x<y<z≤n+p+q。如果在说明执行后,货车前n节车箱有且仅有一个箱子,则该方案是正确的。
任务:
编写一个程序完成下列工作:
● 读入p、q和车箱总数n;
● 生成一个正确的放置方案;
输入格式
第一行仅包括三个正整数,用空格分开。它们是起重机恰当的参数p、q,需要装满的车箱数n。(1≤n≤300000,2≤p+q≤60000)
输出格式
第一行仅有一个整数m,表示生成方案中说明的条数。以下m行,每行有三个整数x、y、z,用空格分开,1≤x<y<z≤n+p+q,x≤n,y∈{x+p,x+q},z=x+p+q,这些是一次移动中接受箱子的车箱的编号。
样例输入
2 3 10
样例输出
4 1 3 6 2 4 7 5 8 10 9 11 14
提示
不要提交!
题目来源
没有写明来源