Permainan BattleBlock Theater kadang-kadang berisi teka-teki yang merupakan versi umum dari Lights Out . Anda memiliki tiga blok yang berdekatan, masing-masing menunjukkan tingkat antara 1 dan 4 termasuk dengan bar, misalnya:
|
||||
||
Jika Anda menyentuh sebuah blok, maka blok itu serta blok yang berdekatan akan menambah levelnya (membungkus kembali dari 4 ke 1). Teka-teki diselesaikan ketika ketiga blok menunjukkan level yang sama (tidak masalah level mana). Karena, urutan Anda menyentuh blok tidak menjadi masalah, kami menunjukkan solusi dengan seberapa sering setiap blok disentuh. Solusi optimal untuk input di atas adalah 201
:
| --> || --> ||| |||
|||| | || |||
|| || || --> |||
Gim ini sangat mudah menggeneralisasikan sejumlah blok, meskipun untuk beberapa angka, tidak semua konfigurasi dapat dipecahkan.
Tantangan
Diberikan urutan level blok, kembalikan seberapa sering setiap blok perlu disentuh untuk memecahkan teka-teki. Misalnya contoh di atas akan diberikan sebagai 142
dan dapat menghasilkan 201
sebagai hasilnya. Jika tidak ada solusi, kembalikan beberapa output yang konsisten dari pilihan Anda, yang dapat dibedakan dari semua solusi potensial, misalnya -1
atau string kosong.
Anda dapat menulis suatu fungsi atau program, mengambil input melalui STDIN, argumen baris perintah atau argumen fungsi, dalam setiap format daftar atau string yang mudah, dan dengan cara yang sama menghasilkan melalui nilai balik atau dengan mencetak ke STDOUT.
Kode Anda harus mengembalikan hasil yang benar untuk semua kasus uji dalam satu menit pada mesin yang masuk akal. (Ini bukan batas yang sepenuhnya ketat, jadi jika solusi Anda membutuhkan satu menit dan sepuluh detik, itu baik-baik saja, tetapi jika dibutuhkan 3 menit, tidak. Algoritma yang baik akan dengan mudah menyelesaikannya dalam hitungan detik.)
Ini kode golf, jadi jawaban tersingkat (dalam byte) menang.
Contohnya
Solusi tidak unik, sehingga Anda dapat memperoleh hasil yang berbeda.
Input Output
1 0
11 00
12 No solution
142 201
434 101
222 000
4113 0230
32444 No solution
23432 10301
421232 212301
3442223221221422412334 0330130000130202221111
22231244334432131322442 No solution
111111111111111111111222 000000000000000000000030
111111111111111111111234 100100100100100100100133
412224131444114441432434 113013201011001101012133
Sejauh yang saya tahu, ada tepat 4 solusi untuk setiap input di mana jumlah blok adalah 0 mod 3, atau 1 mod 3, dan ada 0 atau 16 solusi di mana itu adalah 2 mod 3.