#include int pages, count; typedef struct { int front[2], back[2]; } sheet; sheet book[101]; void Clear() { for(int i = 0; i < pages; i++) { book[i].front[0] = -1; book[i].back[0] = -1; book[i].front[1] = -1; book[i].back[1] = -1; } } void Solve() { count = pages / 4 + (pages % 4 > 0 ? 1 : 0); // printf("Count %d\n", count); int iter = 1; for(int i = 0; i < count; i++) { if (iter <= pages) book[i].front[1] = iter++; if (iter <= pages) book[i].back[0] = iter++; } for(int i = count-1; i >= 0; i--) { if (iter <= pages) book[i].back[1] = iter++; if (iter <= pages) book[i].front[0] = iter++; } } void Draw() { for(int i = 0; i < count; i++) { if (book[i].front[0] != -1 || book[i].front[1] != -1) { if (book[i].front[0] == -1) printf("Sheet %d, front: Blank,", i+1); else printf("Sheet %d, front: %d,", i+1, book[i].front[0]); if (book[i].front[1] == -1) printf(" Blank\n"); else printf(" %d\n", book[i].front[1]); } if (book[i].back[0] != -1 || book[i].back[1] != -1) { if (book[i].back[0] == -1) printf("Sheet %d, back: Blank,", i+1); else printf("Sheet %d, back: %d,", i+1, book[i].back[0]); if (book[i].back[1] == -1) printf(" Blank\n"); else printf(" %d\n", book[i].back[1]); } } } int main() { scanf("%d", &pages); while(pages) { Clear(); Solve(); printf("Printing order for %d pages:\n", pages); Draw(); printf("\n"); scanf("%d", &pages); } return 0; }