Contexte
Les États-Unis ont un amour unique du gerrymandering –– la manipulation délibérée d'une circonscription électorale pour prédire certains résultats de vote. Tout récemment, il y a eu une affaire de gerrymandering portée devant la Cour suprême. Le Gerrymandering, en particulier lorsqu'il est lié à la race, est déclaré illégal et entraîne l'obligation de redessiner les lignes du district.
Étant donné une carte rectangulaire d'une municipalité (tableau 2D), vous dessinerez des lignes de district pour aider votre parti à obtenir le plus de représentation. Autrement dit, vous allez gerrymander. Chaque municipalité a deux partis, 0
et 1
. La carte sera composée de carrés avec 0
ou 1
sur eux. Voici un exemple de carte:
Défi
Vous regrouperez la carte en districts afin que le 1
groupe obtienne au moins le nombre de districts spécifié par l'entrée.
Contribution
L'entrée consistera en une carte, le nombre de districts à dessiner et le nombre minimum de districts que le 1
parti doit gagner (le score minimum).
Sortie
Le résultat sera une carte des districts. Chaque district sera composé uniquement d'une lettre majuscule de l'alphabet. Oui, cela signifie qu'il n'y aura pas plus de 26 districts.
S'il n'y a pas de sortie possible où le parti saisi gagne suffisamment de districts, soit:
- Imprimer "Nous avons essayé ..."
- Erreur fatale parce que le parti a été irrémédiablement blessé par les résultats des élections
- Ou les deux
Règles (également très importantes)
- Tous les districts doivent être contigus
- Les districts peuvent ne pas avoir d'autres districts en eux
- Chaque district doit contenir au moins quatre nœuds. L'entrée sera conforme aux règles, ce qui signifie qu'il y aura au moins des
number_of_districts * 4
nœuds dans la carte - Le score de chaque parti est le nombre de districts où il a une majorité
- Si un district a le même nombre de
0
s et1
s, alors aucune des parties n'en profite - Règles normales de non-triche
- C'est le code-golf , donc le code le plus court en octets gagne.
Cas de test
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
Bien sûr, votre programme devrait fonctionner pour n'importe quel cas de test valide, pas seulement pour ceux-ci.