Kabel saya semua kusut!
Bukankah itu menjengkelkan saat kabel-kabel tersangkut? Yah, itu baru saja terjadi pada saya, jadi saya ingin membantu saya melepaskan mereka! Demi kenyamanan Anda, saya telah memutus semuanya dari perangkat, tetapi semuanya masih terhubung ke outlet. Tantangan Anda adalah mencari cara untuk menguraikannya!
Memasukkan
Input akan terdiri dari spasi, pipa, dan Xs (kedua kasus). Masukan akan terlihat seperti ini:
| | | |
X | |
| | x
| X |
| | | |
Huruf kapital X berarti bahwa kawat kiri memotong kawat kanan, dan huruf kecil x berarti sebaliknya. Baris pertama dan terakhir akan selalu | | | |.... Anda dapat mengambil input sebagai string yang dipisahkan koma, array string, dll. Formatnya tidak ketat, asalkan masuk akal dan tidak mengandung informasi tambahan.
Keluaran
Untuk tantangan ini, saya tidak hanya perlu tahu berapa lama saya akan mengambil, saya perlu tahu persis apa yang harus dilakukan. Jadi, keluarkan daftar pasangan integer dengan karakter R atau L, case-sensitive, yang mewakili dua kabel untuk dilepaskan dan ke arah mana (R berarti kanan atas kiri, dan sebaliknya untuk L). Anda perlu memberi tahu saya cara untuk membukanya; Saya tidak bisa memikirkannya sendiri. Output juga cukup fleksibel, selama Anda menampilkan semua karakter pasangan integer + dalam urutan yang benar dan Anda tidak menampilkan teks omong kosong tambahan (tanda kurung, koma, dll. Baik-baik saja). Kabel bisa nol atau satu diindeks, tetapi indeks harus mulai dari kiri. Perhatikan bahwa Anda harus melepaskan dari bagian bawah, bukan bagian atas. Gaya keluaran harus konsisten, dan sebutkan bagaimana Anda menghasilkan jika tidak jelas. Kasus karakter tidak harus konsisten,
Output Sampel
Untuk contoh input di atas, hasilnya akan seperti:
2 3 R
3 4 L
1 2 R
Format keluaran di sini adalah daftar nilai-nilai yang dipisahkan spasi baris baru. Ini 1-diindeks.
Spesifikasi lebih lanjut
Adalah sah untuk memiliki X dan x ditumpuk secara vertikal satu sama lain dalam urutan apa pun. Karena saya malas, saya tidak ingin mengganti kabel secara tidak perlu, jadi jangan mengeluarkan apapun untuk kasus ini; jika saya menemukan itu, saya hanya akan menarik kabel dengan lembut untuk meluruskannya.
Ini juga berlaku untuk memiliki beberapa X dan x ditumpuk secara vertikal, dan selama tidak ada kawat yang terlibat dalam penyeberangan lainnya, saya tidak ingin ada gerakan tambahan (karena saya malas). Jadi, jika karakter X X x X x xmuncul di kolom tanpa penyeberangan lain, hasilnya harus tetap kosong!
Dalam hal ini tidak jelas, R menghilangkan X dan L menghilangkan x.
Mungkin ada dua penyeberangan kawat di baris yang sama, dalam hal ini urutan kedua swap ini tidak masalah. Anda tidak akan pernah mendapatkan sesuatu seperti | X X |(ini tidak masuk akal karena menyiratkan bahwa kawat tengah sedang dilintasi kabel di kedua sisi kiri dan kanannya).
Tidak selalu ada persimpangan ...
Input bisa berupa satu pipa. Namun, input tidak akan pernah kosong.
Solusi valid terpendek menang pada 20 Desember!
Lebih banyak contoh
Seperti yang saya janjikan:
Contoh 1
Memasukkan
| | | | | |
| | X x
X | x |
| x | X
X X | |
| | | | | |
Keluaran
1 2 R
3 4 R
2 3 L
5 6 R
1 2 R
4 5 L
3 4 R
5 6 L
Contoh 2
Memasukkan
| | |
X |
| x
| | |
| X
| x
| | |
Keluaran
2 3 L
1 2 R
Contoh 3
Memasukkan
|
Output kosong. Ya, Anda harus berurusan dengan kasus ini.
Contoh 4
Memasukkan
| |
X
x
X
x
X
x
X
x
X
x
| |
Output kosong. Hanya untuk bersenang-senang :).
Contoh 5
Memasukkan
| |
X
X
x
X
x
x
| |
Output masih kosong ...