#P2495. Incomplete chess boards
Incomplete chess boards
问题描述
背景
Tom 从老师那里得到了一个谜题:老师展示了 个国际象棋棋盘,每个棋盘被移除了两个方格。老师想知道哪些棋盘可以被 个多米诺骨牌完全覆盖。他承诺给正确解决问题的人十块巧克力。Tom 很喜欢巧克力,但他自己无法解决这个问题,于是向他哥哥 John 求助。John(同样喜欢巧克力)同意了,条件是分得一半的奖励。
John 更擅长编程而非思考,因此决定编写一个程序来解决这个问题。你能帮助 John 吗?虽然你不会赢得任何巧克力,但这可能帮助你在编程竞赛中获胜。
问题
给定 个多米诺骨牌和一个的棋盘,棋盘上移除了两个不同的方格。棋盘的行和列分别用 和 表示,其中 。
一个 的多米诺骨牌可以水平或垂直放置在棋盘上,因此它可以覆盖以下两种方格组合之一:
水平放置:,其中 ,
垂直放置:,其中 ,
目标是判断移除两个方格后的棋盘是否可以被 31 个多米诺骨牌完全覆盖。
例如,如果移除的方格是 和 ,则可以完全覆盖(如图 1 所示)。
输入
第一行输入包含场景数 。接下来的 行,每行包含四个整数 ,,,,用空格分隔。这些整数的范围是 ,表示被移除的两个方格 和 。保证
输出
每个场景的输出以一行 "Scenario #i:" 开头,其中 i是场景编号(从 开始)。如果可以完全覆盖,则输出 ,否则输出 。每个场景的输出以空行结束。
示例输入 1
复制
3
8 4 2 5
8 8 1 1
4 4 7 1
示例输出 1
复制
Scenario #1:
1
Scenario #2:
0
Scenario #3:
0
来源
TUD Programming Contest 2005, Darmstadt, Germany