Diberikan adalah papan ukuran variabel dengan ukuran maksimum 5 kali 5 bidang. Setiap bidang dapat diisi dengan 'x'. Jika tidak diisi dengan 'x', itu diisi dengan 'o'.
Status awal setiap papan diberikan (lihat di bawah). Dengan setiap papan, 10 putaran harus dimainkan (maksimal, syarat: lihat di bawah) dan evolusi x harus diawasi.
Satu putaran bekerja dengan cara berikut:
- setiap 'x' menyebar ke bidang yang berbatasan secara orthogonal, tetapi menghilang dengan sendirinya
- setiap kali dua 'x' berada di satu bidang, mereka menetralkan satu sama lain
Evolusi semua 'x' di setiap putaran harus terjadi secara bersamaan. Contoh:
o o o o x o
o x o -> x o x
o o o o x o
Dengan setiap putaran evolusi, Anda harus melihat apakah papan dikosongkan dari 'x'. Kalau tidak kosong, pola berulang bisa hadir. Jika tidak demikian halnya, kami menyerah pada analisis evolusi. Selain itu Anda harus mencetak persentase maksimum bidang x untuk setiap papan awal (dibulatkan ke seluruh angka).
Memasukkan:
Data input dapat ditemukan di sini (Pastebin) Data ini berisi 100 status awal. Seperti yang telah disebutkan, ukuran papan bervariasi. Jumlah baris dinyatakan dengan angka n dari 1 hingga 5, diikuti oleh n baris yang hanya berisi 'x' dan 'o', mewakili pola awal. Setiap baris papan memiliki 1 hingga 5 bidang.
Keluaran:
Hasil lengkap harus dicetak, satu baris tercetak untuk setiap papan awal dalam bentuk berikut:
Round {0-10}: {repetition/empty/giveup}, {0-100} percent maximum-fill
Contoh:
Contoh 1:
Input: 2 Starting state: x o x
xox x x
xx
Round 1: x x o
o x
Round 2: x o x
o x
Round 3: o x o
o o
Round 4: x o x -> The pattern repeats:
o x It is the same as in round 2,
therefore we stop. Maximum fill was
in the starting state with four times 'x'
of 5 fields altogether,
so we have 4/5 = 80 %.
Output: Round 4: repetition, 80 percent maximum-fill
Contoh 2:
Input: 1 Starting state: x x
xx
Round 1: x x -> We already have a repetition, because
the pattern is the same as in the starting
state. The board is always filled 100 %.
Output: Round 1: repetition, 100 percent maximum-fill
Setelah delapan hari saya akan menandai jawaban yang berfungsi dengan karakter paling sedikit sebagai pemenang. Selain itu saya akan memposting output yang benar untuk 100 papan awal (input).
Anda dapat menggunakan bahasa pilihan Anda (pemrograman / skrip / apa pun).
Selamat bersenang-senang!
PS: Jika ada pertanyaan, jangan ragu bertanya.
PPS: Sehubungan dengan pembuat asli: Untuk orang yang mampu berbahasa Jerman, pertanyaan diambil dari JANGAN KLIK JIKA ANDA TIDAK INGIN SPOILER di sini . Karena waktu resmi untuk menyelesaikan tantangan telah berakhir, saya ingin melihat apakah seseorang dapat memberikan solusi yang singkat dan elegan.
22.04.2014:
Tantang Selesai! Pemenang ditandai sebagai diterima. Output yang benar:
Round 10: giveup, 50 percent maximum-fill
Round 5: empty, 66 percent maximum-fill
Round 1: repetition, 100 percent maximum-fill
Round 1: empty, 100 percent maximum-fill
Round 4: repetition, 100 percent maximum-fill
Round 4: repetition, 70 percent maximum-fill
Round 2: repetition, 60 percent maximum-fill
Round 4: empty, 88 percent maximum-fill
Round 10: giveup, 50 percent maximum-fill
Round 5: repetition, 80 percent maximum-fill
Round 10: repetition, 80 percent maximum-fill
Round 1: empty, 80 percent maximum-fill
Round 3: repetition, 60 percent maximum-fill
Round 4: repetition, 48 percent maximum-fill
Round 9: empty, 41 percent maximum-fill
Round 10: giveup, 92 percent maximum-fill
Round 10: giveup, 53 percent maximum-fill
Round 10: giveup, 66 percent maximum-fill
Round 6: repetition, 50 percent maximum-fill
Round 10: giveup, 88 percent maximum-fill
Round 10: giveup, 76 percent maximum-fill
Round 10: giveup, 68 percent maximum-fill
Round 10: giveup, 40 percent maximum-fill
Round 10: giveup, 100 percent maximum-fill
Round 10: giveup, 71 percent maximum-fill
Round 2: empty, 81 percent maximum-fill
Round 6: repetition, 36 percent maximum-fill
Round 10: giveup, 61 percent maximum-fill
Round 10: giveup, 60 percent maximum-fill
Round 4: repetition, 66 percent maximum-fill
Round 10: giveup, 72 percent maximum-fill
Round 3: empty, 80 percent maximum-fill
Round 10: giveup, 50 percent maximum-fill
Round 10: giveup, 83 percent maximum-fill
Round 7: repetition, 37 percent maximum-fill
Round 9: repetition, 85 percent maximum-fill
Round 5: repetition, 40 percent maximum-fill
Round 5: repetition, 60 percent maximum-fill
Round 4: empty, 80 percent maximum-fill
Round 10: giveup, 60 percent maximum-fill
Round 4: repetition, 46 percent maximum-fill
Round 6: repetition, 42 percent maximum-fill
Round 10: giveup, 72 percent maximum-fill
Round 4: repetition, 70 percent maximum-fill
Round 4: repetition, 80 percent maximum-fill
Round 6: repetition, 50 percent maximum-fill
Round 4: repetition, 56 percent maximum-fill
Round 10: giveup, 60 percent maximum-fill
Round 10: giveup, 54 percent maximum-fill
Round 10: giveup, 66 percent maximum-fill
Round 2: repetition, 40 percent maximum-fill
Round 2: repetition, 40 percent maximum-fill
Round 6: repetition, 75 percent maximum-fill
Round 7: empty, 85 percent maximum-fill
Round 10: giveup, 50 percent maximum-fill
Round 6: repetition, 70 percent maximum-fill
Round 2: empty, 66 percent maximum-fill
Round 1: empty, 66 percent maximum-fill
Round 3: empty, 100 percent maximum-fill
Round 3: empty, 66 percent maximum-fill
Round 8: repetition, 42 percent maximum-fill
Round 1: empty, 60 percent maximum-fill
Round 2: repetition, 100 percent maximum-fill
Round 2: repetition, 83 percent maximum-fill
Round 4: repetition, 66 percent maximum-fill
Round 6: repetition, 75 percent maximum-fill
Round 4: empty, 66 percent maximum-fill
Round 10: giveup, 61 percent maximum-fill
Round 10: giveup, 56 percent maximum-fill
Round 4: empty, 66 percent maximum-fill
Round 6: repetition, 33 percent maximum-fill
Round 3: empty, 57 percent maximum-fill
Round 3: repetition, 100 percent maximum-fill
Round 6: repetition, 73 percent maximum-fill
Round 10: giveup, 50 percent maximum-fill
Round 6: repetition, 50 percent maximum-fill
Round 10: giveup, 73 percent maximum-fill
Round 5: empty, 80 percent maximum-fill
Round 10: giveup, 61 percent maximum-fill
Round 3: repetition, 53 percent maximum-fill
Round 10: giveup, 33 percent maximum-fill
Round 10: giveup, 80 percent maximum-fill
Round 10: giveup, 63 percent maximum-fill
Round 10: giveup, 70 percent maximum-fill
Round 10: giveup, 84 percent maximum-fill
Round 7: repetition, 70 percent maximum-fill
Round 10: repetition, 57 percent maximum-fill
Round 10: giveup, 55 percent maximum-fill
Round 6: repetition, 36 percent maximum-fill
Round 4: repetition, 75 percent maximum-fill
Round 10: giveup, 72 percent maximum-fill
Round 10: giveup, 64 percent maximum-fill
Round 10: giveup, 84 percent maximum-fill
Round 10: giveup, 58 percent maximum-fill
Round 10: giveup, 60 percent maximum-fill
Round 10: giveup, 53 percent maximum-fill
Round 4: repetition, 40 percent maximum-fill
Round 4: empty, 40 percent maximum-fill
Round 10: giveup, 50 percent maximum-fill
Round 10: giveup, 68 percent maximum-fill