残缺棋盘问题 C语言 算法

 问题描述:

Incomplete Chessboard

Description

 

TheBeet有一个块大小为(2^{N}2N * 2^{N}2N)的棋盘。这个棋盘是由一个个格子组成的。很不幸的,在一个月黑风高的晚上,它被摔坏了。不幸中的万幸,它只被摔坏了一个格子(此格子可以在棋盘的任意位置)。

d2ac6ee232.jpg

但是这个棋盘再也不能用来下棋了,于是TheBeet想把这个棋盘切成如以下的几种小块。但是TheBeet不想浪费任何一个格子,您能帮助TheBeet么?

d1bd997766.jpg

Input

 

每个输入文件只包含一组数据。

每组测试数据包含两行,第一行为N ( 1 <= N <= 10),表示棋盘的大小为2^{N}2N。接下来那行里面有两个数字x, y(1 <= x, y <= 2^{N}2N)表示这个残缺的格子在棋盘的第x行和第y列。

Output

 

如果不存在这样的划分情况,您的程序只需要输出"-1"(不包含引号)。否则输出整个棋盘的划分情况,每个相连的块用一个正整数字(范围[1, (2^{N}2N * 2^{N}2N

Sample Input 1 

2
2 3
  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值