{"trustable":false,"sections":[{"title":"","value":{"format":"MD","content":"**问题描述:**\n\n很久以前,一位骑士在准备参加 GridLand 的一场大战。GridLand 被划分为方形网格。有 \\(R\\) 个水平网格和 \\(C\\) 个垂直网格。这位特殊的骑士可以执行 \\((M, N)\\) 移动,即他可以水平移动 \\(M\\) 个方格和垂直移动 \\(N\\) 个方格,或者可以水平移动 \\(N\\) 个方格和垂直移动 \\(M\\) 个方格。换句话说,他可以从方格 \\((a, b)\\) 跳到方格 \\((c, d)\\),当且仅当 \\(|a−c| \u003d M\\) 且 \\(|b−d| \u003d N\\) 或者 \\(|a−c| \u003d N\\) 且 \\(|b−d| \u003d M\\)。然而,战场上的一些方格里有水。\n\n为了成功跳跃,两个方格都不应该包含水。现在,骑士想在战场上进行一次巡回,以检查一切是否正常。他将执行以下操作:\n\na) 他将从方格 \\((0, 0)\\) 开始并结束他的巡回,但要访问尽可能多的方格。\n\nb) 对于每个方格 \\(s_i\\),他计算可通过一次跳跃到达 \\(s_i\\) 的不同方格的数量 \\(k_i\\)(满足跳跃条件)。然后,如果 \\(k_i\\) 为偶数,他将方格标记为偶数方格,如果 \\(k_i\\) 为奇数,他将方格标记为奇数。未访问的方格保持未标记状态。\n\nc) 在回到方格 \\((0, 0)\\) 后,他统计偶数和奇数标记方格的数量。他可以多次访问同一个方格。\n\n您作为骑士的顾问建议说,他可以通过编写程序而不是访问所有方格来完成任务。因此,骑士告诉您完成这个任务。他将在巡回结束后检查您的结果。\n\n**输入:**\n\n第一行输入一个整数 \\(T\\)(\\(≤ 50\\)),表示测试用例的数量。\n\n每个测试用例包含四个整数 \\(R, C, M, N\\)(\\(1 \u003c R, C ≤ 100\\),\\(0 ≤ M, N ≤ 50\\),\\(M + N \u003e 0\\))。\n\n接下来一行包含一个整数 \\(W\\)(\\(0 ≤ W \u003c R ∗ C\\)),表示包含水的不同网格的数量。\n\n接下来的 \\(W\\) 行,每行包含一对整数 \\(x_i, y_i\\)(\\(0 ≤ x_i \u003c R\\),\\(0 ≤ y_i \u003c C\\),\\(x_i + y_i \u003e 0\\)),表示包含水的方格坐标。\n\n**输出:**\n\n对于每个测试用例,输出一个行,包含案例编号以及偶数和奇数标记方格的数量。"}},{"title":"Sample Input","value":{"format":"MD","content":"```\n2\n3 3 2 1\n0\n4 4 1 2\n2\n3 3\n1 1\n```\n\n"}},{"title":"Sample Output","value":{"format":"MD","content":"```\nCase 1: 8 0\nCase 2: 4 10\n```"}}]}