1200.cpp

来自「这是哈尔滨工业大学acmOJ的源代码」· C++ 代码 · 共 34 行

CPP
34
字号
/*  This Code is Submitted by wywcgs for Problem 1200 on 2006-03-03 at 16:36:30 */ 
#include <cstdio>

const int CENTER_X = 1024;
const int CENTER_Y = 1024;

int round, px, py;

void draw(int, int, int);

int main()
{
	int k;
	
	while(scanf("%d %d %d", &k, &px, &py) != EOF && k != 0) {
		round = 0;
		draw(k, CENTER_X, CENTER_Y);
		printf("%3d\n", round);
	}
	
	return 0;
}

void draw(int k, int cx, int cy)
{
	int area = 0;
	int dia[][2] = { { cx-k, cy-k }, { cx+k, cy-k }, { cx-k, cy+k }, { cx+k, cy+k } };
	if(px >= dia[0][0] && px <= dia[1][0] && py >= dia[0][1] && py <= dia[2][1]) round++;
	if(k == 1 || cx == px || cy == py) return;
	if(px > cx) area |= 1;
	if(py > cy) area |= 2;
	draw(k/2, dia[area][0], dia[area][1]);
}

⌨️ 快捷键说明

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