pku1654.cpp

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 52 行

CPP
52
字号
#include <stdio.h>

typedef long long LLN;

void Solve()
{
	LLN x, y, nx, ny;
	LLN area;
	char c;
	area = 0;
	nx = 0;
	ny = 0;
	x = 0;
	y = 0;
	while (1)
	{
		while (1)
		{
			c = getchar();
			if (c >= '1' && c <= '9')
				break;
		}
		if (c == '5')
			break;
		switch (c)
		{
		case '1': {x = nx - 1, y = ny + 1;break;}
		case '2': {y = ny + 1; break;}
		case '3': {x = nx + 1, y = ny + 1; break;}
		case '4': {x = nx - 1; break;}
		case '6': {x = nx + 1; break;}
		case '7': {x = nx - 1, y = ny - 1; break;}
		case '8': {y = ny - 1; break;}
		case '9': {x = nx + 1, y = ny - 1; break;}
		}
		area += nx * y - ny * x;
		nx = x;
		ny = y;
	}
	if (area < (LLN)0)
		area = -area;
	printf("%I64d%s\n", area / 2, area % 2 == (LLN)1 ? ".5":"");
}

int main()
{
	int T;
	scanf("%d", &T);
	while (T--)
		Solve();
	return 0;
}

⌨️ 快捷键说明

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