#P1313. Booklet Printing

Booklet Printing

题目描述

在打印文档时,通常是先打印第一页,然后是第二页、第三页,依此类推,直到文档结束。然而,在制作对折式小册子时,打印顺序必须改变。一本对折式小册子每张纸有四页,正面两页,背面两页。当你按顺序将所有纸张叠放好,然后将小册子对折时,页面就会像普通书籍一样按正确的顺序排列。例如,一本44页的小册子会打印在一张纸上:正面是第44页和第11页,背面是第22页和第33页。

正面                背面
-------------      -------------
|     |     |      |     |     |
|  4  |  1  |      |  2  |  3  |
|     |     |      |     |     |
-------------      -------------

你的任务是编写一个程序,接受要打印的页数作为输入,然后生成打印顺序。

输入

输入包含一个或多个测试用例,最后有一行包含数字00,表示文件结束。每个测试用例由单独一行上的一个正整数nn组成,其中nn是要打印的页数;nn不会超过100100

输出

对于每个测试用例,输出一份报告,指明每张纸上应该打印哪些页面,格式完全如示例所示。如果所需的页数没有完全填满一张纸,那么就用“Blank”这个词来代替页码。如果一张纸的正面或背面全是空白,就不生成该面的输出内容。输出必须按纸张顺序升序排列,先输出正面,再输出背面。

输入示例

1
14
4
0

输出示例

Printing order for 1 pages:
Sheet 1, front: Blank, 1
Printing order for 14 pages:
Sheet 1, front: Blank, 1
Sheet 1, back : 2, Blank
Sheet 2, front: 14, 3
Sheet 2, back : 4, 13
Sheet 3, front: 12, 5
Sheet 3, back : 6, 11
Sheet 4, front: 10, 7
Sheet 4, back : 8, 9
Printing order for 4 pages:
Sheet 1, front: 4, 1
Sheet 1, back : 2, 3

来源

1998年美国中北部地区竞赛