Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | mezzaluna.in, mezzaluna.out | Sursă | Algoritmiada 2017, Runda Finala, Seniors |
Autor | Adrian Budau, Mihai Calancea | Adăugată de | |
Timp execuţie pe test | 0.4 sec | Limită de memorie | 524288 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Mezzaluna
Dorin are un blat olimpic infinit de pizza ce se intinde pe axa OX. Acesta a observat faptul ca, cu cat taie mai des blatul de pizza, cu atat gustul va deveni mai bun. Astfel, avand la dispozitie un set de N intervale, fiecare interval reprezentand o taietura pe care acesta poate sa o faca, scopul vostru este sa determinati numarul maxim de taieturi pe care Dorin le poate efectua.
Formal, Dorin poate selecta un interval pe care sa il taie in unul din cele 2 cazuri:
- Blatul este infinit. Prin taierea cu un nou interval [C, D], blatul ia forma acestui interval.
- Blatul este un interval [A, B]. Putem selecta un nou interval [C, D] doar daca acesta micsoreaza intervalul curent. Formal, daca intersectia dintre [A, B] si [C, D] este un interval [X, Y], acesta trebuie sa fie diferit de [A, B] sau multimea vida. Noul blat va lua forma intervalului [X, Y] (intersectia in capete este considerata a fi multimea vida).
Dandu-se N si multimea celor N intervale cu care putem taia blatul, determinati numarul maxim de taieturi pe care il putem face, precum si numarul de moduri in care putem efectua aceste taieturi. Doua solutii se considera distincte daca ordinea capetelor de intervale care sunt taiate este diferita (nu conteaza intervalele in sine pe care le folosim).
Date de intrare
Fişierul de intrare mezzaluna.in va contine pe prima linie un numar natural N. Pe urmatoarele N linii vor fi cate 2 numere natural [A, B] reprezentand cele N intervale.
Date de ieşire
Fişierul de ieşire mezzaluna.out va contine 2 numere naturale, numarul maxim de taieturi pe care il putem obtine, precum si numarul de moduri in care putem obtine acest maxim, modulo 1.000.000.007.
Restricţii
- 1 ≤ A < B ≤ 2.000
- 1 ≤ N ≤ 100.000
Exemplu
mezzaluna.in | mezzaluna.out |
---|---|
4 1 4 1 3 2 4 2 3 | 3 2 |