Namun masalah penguraian Brainfuck lain, tapi kali ini ... berbeda.
Anda bekerja di Infinite Monkeys Incorporated, perusahaan yang membuat program Brainfuck, untuk menyelesaikan berbagai masalah menarik (secara tidak sengaja, tidak kurang - setelah semua, perusahaan membuat program acak). Namun, tampaknya mesin Turing cepat Anda yang hanya menjalankan Brainfuck memiliki masalah kecil dan mahal dengan kesalahan sintaksis - membuat satu, dan komputer meledak. Ini mungkin cacat desain, tetapi tidak ada yang repot-repot menemukan mengapa itu terjadi.
Karena mesin Turing (terutama yang cepat) harganya mahal (bagaimanapun, mereka memiliki RAM tak terbatas yang biayanya), akan lebih baik untuk memastikan bahwa program tidak memiliki kesalahan sintaksis sebelum menjalankan kode. Perusahaan Anda akan menjalankan banyak kode, jadi verifikasi manual tidak akan berfungsi. Tulis program yang membaca STDIN untuk kode Brainfuck, dan keluar dengan status keluar yang diatur ke selain dari 0 (kesalahan) jika program memiliki kesalahan sintaksis (misalnya,
]
adalah kesalahan sintaks, karena tidak ada yang cocok[
). Keluar dengan status keluar diatur ke 0 jika program benar-benar baik-baik saja.Pastikan program Anda memperhatikan kesalahan yang terjadi
[]
. Anda tidak ingin komputer lain meledak, bukan? Oh, dan pastikan itu sesingkat mungkin - bos Anda membayar untuk program pendek (karena dia pikir itu cepat, atau sesuatu). Oh, dan Anda tidak perlu kode di Brainfuck (pada kenyataannya, Anda tidak bisa, karena Brainfuck tidak mendukung kode keluar) - kode Anda akan dijalankan pada komputer normal.
Jadi, seperti yang Anda lihat, tugas Anda adalah memeriksa apakah program Brainfuck "valid" (memiliki []
simbol pasangan ). Harap dicatat bahwa program Brainfuck dapat memiliki karakter selain []
, jadi jangan menolak program hanya karena memiliki perintah lain. Kode terkecil menang, tetapi mungkin Anda akan lebih peduli dengan upvote.
GCD(a,b)
bukan 0 != a || b
.