⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1084.cpp

📁 哈尔滨工业大学ACM 竞赛网上在线试题集锦的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1084 on 2006-01-08 at 21:37:25 */ 
#include <cstdio>

const int MAX = 32;

class Page {
private:
	bool empty(int) const;
public:
	int left, right;
	void print(int, int, bool) const;
};
bool Page::empty(int n) const {
	return (left > n && right > n);
}
void Page::print(int o, int n, bool front) const {
	if(!empty(n)) {
		printf("Sheet %d, %s: ", o, front ? "front" : "back ");
		if(left > n) printf("Blank,");
		else printf("%d,", left);
		if(right > n) printf(" Blank\n");
		else printf(" %d\n", right);
	}
}

class Sheet {
public:
	Page front, back;
	void print(int, int) const;
};
void Sheet::print(int o, int n) const {
	front.print(o, n, true);
	back.print(o, n, false);
}

int main()
{
	Sheet sheet[MAX];
	int n, i;
	
	while(scanf("%d", &n) != EOF && n != 0) {
		int p = (n + 3) / 4, m = 1;
		for(i = 0; i < p; i++) {
			sheet[i].front.right = m++;
			sheet[i].back.left = m++;
		}
		for(i = p-1; i >= 0; i--) {
			sheet[i].back.right = m++;
			sheet[i].front.left = m++;
		}
		printf("Printing order for %d pages:\n", n);
		for(i = 0; i < p; i++) sheet[i].print(i+1, n);
	}
	
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -