3368840_ac_16ms_180k.cpp

来自「北大大牛代码 1240道题的原代码 超级权威」· C++ 代码 · 共 58 行

CPP
58
字号
#include <stdio.h>

__int64 x, y, w, h;
int num[][2] = {{1, 1}, {1, -1}};

int pos(int i, int j)
{
	int ret = 1;
	__int64 mid = (__int64)(1) << 61;

	while (mid != 1)
	{
		if (i >= mid && j >= mid)
		{
			ret *= -1;
			i -= mid;
			j -= mid;
		}
		else
		{
			if (j >= mid)
			{
				j -= mid;
			}
			else
			{
				if (i >= mid)
				{
					i -= mid;
				}
			}
		}
		mid = mid >> 1;
	}
	return ret * num[i][j];
}

int main()
{
	int cas;

	scanf("%d", &cas);
	while (cas-- > 0)
	{
		scanf("%*s%I64d%I64d%I64d%I64d", &x, &y, & w, &h);
		for (__int64 i = y; i < y + h; i++)
		{
			for (__int64 j = x; j < x + w; j++)
			{
				printf("%d ", pos(i, j));
			}
			printf("\n");
		}
		printf("\n");
	}
	return 0;
}

⌨️ 快捷键说明

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