バックグラウンド
米国には、ゲリマンダリングに対する独特の愛情があります。特定の投票結果を予測するための選挙区の意図的な操作です。つい最近、最高裁判所に持ち込まれたゲリマンダー事件がありました。ジェリーマンダリングは、特に人種に関連する場合、違法と判断され、地区の路線を変更する必要が生じます。
自治体の長方形の地図(2次元配列)を指定すると、地区の線を描画して、パーティが最も表現しやすくなります。つまり、ゲリマンダーになります。すべての自治体には2つの政党が0
あり1
ます。マップは、いずれか0
または1
その上の正方形で構成されます。以下にマップの例を示します。
チャレンジ
マップを地区にグループ化して、1
パーティが少なくとも入力で指定された地区の数を取得できるようにします。
入力
入力は、マップ、描画する地区の数、および1
パーティーが勝つ必要がある地区の最小数(最小スコア)で構成されます。
出力
出力は、地区の地図になります。各地区はアルファベットの大文字で一意に構成されます。はい、これは26以上の地区がないことを意味します。
入力されたパーティが十分な地区に勝つ可能性のある出力がない場合、次のいずれかです
- 印刷してみました...
- 選挙結果により党が取り返しのつかないほど負傷したため、致命的なエラー
- または両方
ルール(非常に重要)
- すべての地区は連続している必要があります
- 地区には他の地区がない場合があります
- 各地区には、少なくとも4つのノードが必要です。入力はルールと一致します。つまり
number_of_districts * 4
、マップには少なくともノードがあります。 - 各政党のスコアは、政党が過半数を占める地区の数です
- 地区の
0
sと1
sの数が同じ場合、どちらの当事者もその恩恵を受けません - 通常の不正行為のルール
- これはcode-golfなので、バイト単位の最短コードが優先されます。
テストケース
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
もちろん、あなたのプログラムはのために働く必要があります任意の有効なテストケースだけでなく、これらのもの。