Saya akan membahas sebuah persoalan yang menarik, bersumber dari UVa 12384 - Span. Deskripsi soal yang singkat, padat, dan jelas itu mungkin sedikit membingungkan. Pastikan anda mengerti maksud soal atau setidaknya mampu membaca notasi matematikanya. Sebagai informasi, jika A adalah sebuah himpunan, maka |A| menunjukkan banyaknya elemen di dalam himpunan A.
Saya akan merubah cerita soal tersebut sehingga tidak terlalu matematis. Misalkan array X menampung tinggi badan orang dalam sebuah barisan, dari paling depan hingga paling belakang. Setiap orang di barisan menghadap ke depan. Orang di barisan ke-i dapat melihat orang di barisan ke-j, apabila semua orang yang berada di antara i dan j (termasuk i dan j) lebih pendek atau sama dengan tinggi orang ke-i. Lalu S[i] akan menunjukkan banyaknya orang yang dapat dilihat orang ke-i. Nah tugas kita berikutnya adalah menghitung nilai dari (S[1] + S[2] + ... + S[n]) mod m.
Saya akan merubah cerita soal tersebut sehingga tidak terlalu matematis. Misalkan array X menampung tinggi badan orang dalam sebuah barisan, dari paling depan hingga paling belakang. Setiap orang di barisan menghadap ke depan. Orang di barisan ke-i dapat melihat orang di barisan ke-j, apabila semua orang yang berada di antara i dan j (termasuk i dan j) lebih pendek atau sama dengan tinggi orang ke-i. Lalu S[i] akan menunjukkan banyaknya orang yang dapat dilihat orang ke-i. Nah tugas kita berikutnya adalah menghitung nilai dari (S[1] + S[2] + ... + S[n]) mod m.