背景
美国对接送服务有着独特的热爱-故意操纵选举区来预测某些投票结果。就在最近,最高法院审理了一个载人妖案。尤其是与种族有关的游击队员被裁定为非法,并导致要求重划分区线。
给定一个自治市的矩形地图(二维数组),您将绘制区域线以帮助您的政党获得最大的代表权。就是说,你会很高兴。每个市政当局都有两个政党,0
并且1
。地图将由正方形0
或正方形组成1
。这是一个示例地图:
挑战
您将地图分组为地区,以便该1
聚会至少获得输入所指定的地区数。
输入项
输入将包括一张地图,要绘制的区域数以及该1
方需要赢得的最小区域数(最小分数)。
输出量
输出将是各地区的地图。每个地区将唯一地由大写字母组成。是的,这意味着不超过26个区。
如果没有可能的输出,则输入的一方赢得了足够的分区,请执行以下任一操作:
- 打印“我们尝试过...”
- 致命错误,因为该党在选举结果中受到不可弥补的伤害
- 或两者
规则(也很重要)
- 所有地区必须是连续的
- 地区中可能没有其他地区
- 每个区必须至少有四个节点。输入内容将与规则一致,这意味着
number_of_districts * 4
地图中至少会有节点 - 每个政党的分数是其占多数的区数
- 如果一个区的
0
s和1
s 数目相同,那么任何一方都不会从中受益 - 正常的不作弊规则
- 这是代码高尔夫球,因此以字节为单位的最短代码获胜。
测试用例
1. Input 1. Output 2. Input 2. Output 3. Input 3. Output
districts: 5 Image and map districts: 3 Image below districts: 3 fatal error
min wins: 3 min wins: 3 min wins: 3
map: map: map:
00000110000 AAAAAAAAAAA 101101 101101
10000010000 AAAAAAAAAAA 100000 100000
10010000011 AAAAAAAAAAA 011011 011011
11001110000 BBBBBBBAAAA 111111 100111
00111111000 BBBBBBBAAAA
01111111000 CCCCCDDDAAA
01111111001 CCCCCDDDAAA
01000111100 EEEEEDDDDDD
00000001000 EEEEEDDDDDD
当然,您的程序应该适用于任何有效的测试用例,而不仅仅是这些。