Latar Belakang
Amerika Serikat memiliki kecintaan khusus pada persekongkolan - manipulasi yang disengaja dari suatu daerah pemilihan untuk memprediksi hasil pemilihan tertentu. Baru-baru ini ada kasus persekongkolan yang dibawa ke Mahkamah Agung. Gerrymandering, terutama yang terkait dengan ras, dianggap ilegal dan menghasilkan persyaratan untuk menggambar ulang garis kabupaten.
Diberikan peta persegi panjang kotamadya (array 2d), Anda akan menggambar garis distrik untuk membantu pesta Anda mendapatkan representasi terbanyak. Yaitu, Anda akan berpasangan. Setiap kota memiliki dua pihak, 0
dan 1
. Peta akan terdiri dari kotak dengan salah satu 0
atau 1
di atasnya. Ini contoh peta:
Tantangan
Anda akan mengelompokkan peta ke dalam distrik sehingga 1
partai akan mendapatkan setidaknya jumlah distrik yang ditentukan oleh Input.
Memasukkan
Input akan terdiri dari peta, jumlah distrik yang akan diundi, dan jumlah minimum distrik yang 1
harus dimenangkan oleh partai (skor minimum).
Keluaran
Outputnya akan menjadi peta kabupaten. Setiap distrik akan secara unik terdiri dari huruf besar alfabet. Ya, ini berarti tidak akan ada lebih dari 26 kabupaten.
Jika tidak ada output yang memungkinkan di mana pihak yang diinput memenangkan cukup distrik, baik:
- Cetak “Kami mencoba ...”
- Kesalahan fatal karena partai itu tidak dapat diperbaiki karena hasil pemilu
- Atau keduanya
Aturan (juga sangat penting)
- Semua distrik harus bersebelahan
- Kabupaten mungkin tidak memiliki kabupaten lain di dalamnya
- Setiap kabupaten harus memiliki setidaknya empat node di dalamnya. Masukan akan konsisten dengan aturan, artinya setidaknya akan ada
number_of_districts * 4
simpul di peta - Skor dari masing-masing pihak adalah jumlah kabupaten yang memiliki mayoritas
- Jika suatu kabupaten memiliki jumlah
0
s dan1
s yang sama, maka tidak ada pihak yang mendapat manfaat darinya - Aturan larangan normal
- Ini adalah kode-golf , jadi kode terpendek dalam byte menang.
Uji kasus
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
Tentu saja, program Anda harus bekerja untuk setiap kasus uji yang valid, bukan hanya yang ini.