Saya punya masalah serius. Saya memiliki beberapa file teks di mana saya menyimpan nomor saya yang sangat penting - semua yang penting! Dan dua, dan bertiga ..
Angka-angka ini sangat penting sehingga saya tidak bisa mempercayakan mereka ke sistem angka desimal atau biner yang baru. Saya menyimpan setiap nomor yang disandikan di unary, seperti:
+--+
| |
+---+ +----+ |
| | | |
+---+ +-------+
~/two.txt
Sederhana dan dapat diandalkan: dua loop ASCII untuk nomor 2. Sayangnya, hal-hal ini cenderung menjadi kusut dari waktu ke waktu dan sekarang saya mengalami kesulitan mencari tahu berapa banyak loop dalam setiap file. Berikut adalah beberapa contoh yang saya kerjakan dengan tangan:
Satu:
+---+
| |
+--+ |
| |
+--+ |
| |
| |
| |
+--+ +--+
| |
+---------+
Tiga:
+---------+
| +-----+ |
| | +-+ | |
| | | | | |
| | +-+ | |
| +-----+ |
+---------+
Empat:
+--------------+
| +--+ +--+ |
| | | | | |
+-|-----|-----|----+
| | | | | | | |
| +--+ +--+ +--+ |
+------------------+
+------------+
| |
+-----+ +-----+ |
| | | |
+-----|-----------+ | |
| | +--+ | | | |
+-+ +--|--|--+ +---------+
| | +-+ | | |
+------+ | | | |
+-------+ | |
|| | |
|+-----+
| |
+---+
Lima:
+--------+ +--------+ +--------+
| | | | | |
| +--|-----+ +--|-----+ |
| | | | | | | | | |
+-----|--+ +-----|--+ +--------+
| | | |
+--------+ +--------+
Bisakah Anda membantu saya menghitung loop saya?
Berikut aturannya:
- Karena saya menyimpan segala sesuatu di ASCII-encodeed unary, efisiensi ruang sangat penting bagi saya. Karena itu, ini adalah kode golf. Program terkecil dalam byte menang.
- Loop ditarik dengan karakter +, -, |. Setiap sudut dalam loop digambar dengan jelas: tepat salah satu karakter di atas dan di bawah + akan |, dan tepat satu ke kanan atau ke kiri akan -. Dua tanda + tidak pernah berdekatan.
- Helai dapat melewati dan di bawah satu sama lain. Saat untaian menyeberang, Anda akan dapat melihat untaian "bawah" segera di kedua sisi untai "atas".
- Program Anda harus mengambil representasi string dari loop (baik dari stdin atau sebagai parameter fungsi) dan menghasilkan angka (baik untuk stdout atau sebagai nilai balik).
- Panjang garis mungkin tidak seragam dalam gambar lingkaran dan mungkin ada spasi tambahan di setiap garis.
- Anda dapat berasumsi bahwa setidaknya ada satu loop di input.
Aku mengandalkan mu!
+
?