Rastući Nizovi


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C++, Haskell, PyPy, Python

Kiki se pretplatio na uslugu Postani narančast gdje svaki od sljedećih \(k\) dana dobije jednu kutiju punu naranči. Kada dobije kutiju, Kiki će izabrati točno jednu naranču i pojest će ju, te će baciti ostale u smeće jer je to previše naranči za jedan dan. To znači da će Kiki pojesti \(k\) naranči sveukupno. Vođen učenjem sv. Heona o Grind-u, Kiki je odlučio da svaka naranča koju pojede mora biti strogo veća od prošle. To jest ako je prvi dan pojeo naranču veličine \(a_1\), drugi dan naranču veličine \(a_2\), treći dan \(a_3\) itd. do zadnjeg dana \(a_k\), onda mora vrijediti \(a_1 < a_2 < a_3 < a_4 < ... < a_k\).

On zna da ne treba postojati jedinstven niz jedenja naranči i zato ga zanima koliko točno takvih nizova postoji kako bi mogao izabrati najbolji. Budući da broj rastućih nizova naranči može biti prevelik, on vas moli da ga ispišete modulo \(10^9 + 7\). Kutije mogu imat različiti broj naranči i sve naranče su različitih veličina, pa čak i one iz različitih kutija. Kiki mora pojesti točno jednu naranču svaki dan i to tim redom kojim kutije dolaze.

Ulaz

U prvom retku nalazi se broj \(k\), broj dana/kutija. U sljedećih \(k\) redaka nalazi se prvo broj \(n_i\), i zatim u istom retku \(n_i\) brojeva \(a_{ij}\) , \((1 \leq aij \leq 10^9)\). U svim testnim primjerima će biti \(\sum_{i=1}^k n_i \leq 2 \cdot 10^5\).

Izlaz

Ispišite jedan broj, koliko rastućih nizova možete načiniti koristeći dane kutije.

Ulaz primjera

2
3 1 3 5
4 2 4 6 8

Izlaz primjera

9

Ulaz primjera

7
4
5 3 2 1 5 100001
2 4 6
1 7
3 1000 100 101

Izlaz primjera

21

Ulaz primjera

2
1 2
1 1

Izlaz primjera

0
Pojašnjenje

U prvoj kutiji Kiki ima naranču \(2\), a u drugoj \(1\) i nikako ne može dobiti rastući niz naranči.


Comments

There are no comments at the moment.