Ada "algoritma pengurutan" kadang-kadang disebut pengurutan Stalin di mana untuk mengurutkan daftar Anda cukup menghapus elemen dari daftar sampai diurutkan dalam urutan yang meningkat. Misalnya daftar
[1, 2, 4, 5, 3, 6, 6]
Ketika "diurutkan" menggunakan Stalin menjadi
[1, 2, 4, 5, 6, 6]
Ketiganya dihapus karena rusak.
Sekarang jelas ada banyak cara untuk menghapus elemen untuk mengurutkan daftar. Misalnya setiap daftar dengan kurang dari dua elemen harus diurutkan jadi dengan hanya menghapus elemen secara membabi buta kita selalu dapat mengurutkan daftar. Karena ini masalahnya, kami hanya peduli dengan hasil terpanjang dari jenis Stalin.
Tugas Anda adalah mengambil daftar bilangan bulat positif dan menampilkan panjang daftar yang paling banyak diurutkan (bertambah) yang dapat dicapai dengan menghapus elemen dari daftar asli. Yaitu menemukan panjang dari sub-daftar yang paling lama diurutkan (mungkin tidak bersebelahan).
Daftar yang diurutkan dapat memiliki elemen yang sama lebih dari satu kali berturut-turut. Anda tidak perlu mendukung daftar kosong kecuali jika program Anda sendiri kosong.
Mencetak gol
Jawaban Anda akan dinilai berdasarkan panjangnya jenis Stalin terpanjang. Program akan ditafsirkan sebagai urutan byte daripada karakter, dan urutannya akan menjadi alami yang muncul dengan menafsirkan byte sebagai angka. Skor yang lebih rendah lebih baik.
Ini bukan kode-golf
Inilah alat yang rapi untuk membantu Anda menilai jawaban Anda.
Uji kasus
[1, 2, 4, 5, 3, 6, 6] -> 6
[19, 2] -> 1
[3, 3, 4, 3] -> 3
[10] -> 1
[1, 2, 4, 9] -> 4
[1, 90, 2, 3, 4, 5] -> 5
[1, 90, 91, 2, 3, 4, 5] -> 5