Thursday, June 11, 2015

UVa 637 - Booklet Printing

// UVa 637 - Booklet Printing

#include <iostream>
#include <stdio.h>
using namespace std;

int main() {
	int n;
	cin >> n;
	while (n) {
		printf("Printing order for %d pages:\n", n);
		int s = n / 4 + (n % 4 != 0 ? 1 : 0);
		int m = s * 4;
		for (int i = 1; i <= s; i++) {
			// front
			int j = m - 2 * (i - 1);
			int k = 2 * i - 1;
			if (j <= n || k <= n) {
				if (j > n)
					printf("Sheet %d, front: Blank, %d\n", i, k);
				else if (k > n)
					printf("Sheet %d, front: %d, Blank\n", i, j);
				else
					printf("Sheet %d, front: %d, %d\n", i, j, k);
			}
			// back
			j = 2 * i;
			k = m - (2 * i - 1);
			if (j <= n || k <= n) {
				if (j > n)
					printf("Sheet %d, back : Blank, %d\n", i, k);
				else if (k > n)
					printf("Sheet %d, back : %d, Blank\n", i, j);
				else
					printf("Sheet %d, back : %d, %d\n", i, j, k);
			}
		}

		cin >> n;
	}
}

No comments:

Post a Comment