insula

Time limit: 0.15s Memory limit: 64MB Input: insula.in Output: insula.out

Pe faleza liniară a unei insule, administratorul a montat NN camere de supraveghere. Camera cu indicele ii acoperă un interval din faleză [sis_i, eie_i], unde sis_i și eie_i sunt distanțele față de punctul de start al falezei, ambele numere naturale.

După o analiză, proprietarul insulei observă că rețeaua este ineficientă din cauza camerelor inutile. O cameră este considerată inutilă dacă zona ei de acoperire este egală sau complet inclusă într-o altă zonă de acoperire a unei singure camere deja existentă (de exemplu, o cameră care filmează [10, 20] este inutilă dacă există o altă cameră care filmează [5, 25] sau [10, 20]). Mai mult, pentru ca supravegherea să fie continuă, două camere trebuie să fie conectate: a doua cameră trebuie să înceapă cel târziu unde se termină prima (surmatoreactuals_{urmator} \le e_{actual}).

Cerință

  • Pentru C=1C = 1, identificați și păstrați doar camerele utile. O cameră este utilă dacă nu există nicio altă cameră care să îi acopere integral intervalul. Afișați numărul de camere rămase și intervalele acestora, sortate după punctul de început.
  • Pentru C=2C = 2, administratorul vrea să păstrați doar camerele utile și să știe: pornind de la un punct XX dat, care este lungimea maximă a falezei care poate fi acoperită folosind exact KK camere utile consecutive care se conectează între ele. Prima cameră aleasă trebuie să fie prima cameră disponibilă din cele utile care începe la o poziție de start sts_t, cu stXs_t \ge X. Următoarele K1K - 1 camere trebuie alese astfel încât fiecare să extindă zona de acoperire cât mai mult posibil spre dreapta, fără a lăsa spații neacoperite. Dacă nu se pot alege exact KK camere utile conectate, se va afișa 0.

Date de intrare

Fișierul de intrare insula.in conține: pe prima linie numărul CC, reprezentând cerința ce trebuie rezolvată, C{1,2}C \in \{1, 2\}.

Pe următoarea linie se va găsi numărul natural nn, care reprezintă numărul de camere de supraveghere.

Pe fiecare dintre următoarele nn linii, se vor găsi câte 2 numere naturale separate prin spațiu, sis_i și eie_i (1in1 \le i \le n). Unde sis_i reprezintă începutul zonei acoperite de camera cu indicele ii, iar eie_i reprezintă finalul zonei.

Pentru C=2C = 2, pe următoare linie din fișier se vor găsi numărul natural XX urmat de numărul natural KK, cu semnificația din enunț.

Date de ieșire

Fișierul de ieșire insula.out va conține: Pe prima linie se va găsi un număr natural mm, care reprezintă numărul de camere utile. Pe următoarele mm linii, se vor găsi câte 2 numere naturale sjs_j și eje_j (1jm1 \le j \le m), cu semnificația începutului, respectiv finalului zonei supravegheate de o cameră, ordonate crescător, astfel încât sj1sjs_{j-1} \le s_j, iar pentru cazurile in care doua camere au acelasi punct de început ( sj1=sjs_{j-1} = s_j), să avem ej1eje_{j - 1} \le e_{j}.

Pentru C=2C = 2, pe următoare linie din fișier se va găsi un număr natural tt, care reprezintă lungimea maximă a unui interval care este format doar din camere utile, este continuu și începe la prima cameră care începe cel puțin la poziția XX sau 0 dacă nu există un astfel de interval.

Restricții și precizări

  • 1Kn1051 \le K \le n \le 10^5
  • 1si,ei,X10121 \le s_i, e_i, X \le 10^{12}
# Puncte Restricții
1 5 C=1,n=2C = 1, n = 2
2 17 C=1,n1000C = 1, n \le 1000
3 18 C=1C = 1
3 8 C=2,n1000,1si,ei,X1000C = 2, n \le 1000, 1 \le s_i, e_i, X \le 1000
3 10 C=2,n1000C = 2, n \le 1000
3 12 C=2,n1000C = 2, n \le 1000, toate camerele sunt utile
3 10 C=2C = 2, toate camerele sunt utile
4 20 C=2C=2

Exemplul 1

insula.in

1
5
1 4
3 4
7 11
6 10
5 8

insula.out

4
1 4
5 8
6 10
7 11

Exemplul 2

insula.in

2
5
1 4
3 4
7 11
6 10
5 8
4 2

insula.out

4
1 4
5 8
6 10
7 11
6

Explicații

În figura de mai sus, este reprezentată faleza împreună cu camerele de supraveghere și ce interval supraveghează fiecare.

  • Pentru prima cerință, se observă că camera 2 este inutilă, deoarece aceasta este acoperită în întregime de camera 1 ([3,4][1,4][3, 4] \subseteq [1, 4]). Deși camera 4 acoperă un interval inclus în cele acoperite de camerele 3 și 5, aceasta nu este considerată inutilă, deoarece nici camera 3 și nici camera 5 nu includ întreg intervalul [6,10][6, 10]. Răspunsul final pentru această cerință este format din camerele (ordonate după poziția de start și final a intervalului acoperit): 1, 5, 4, 3
  • Pentru a doua cerință, se cere cel mai lung interval care începe la prima cameră aflată cel puțin la poziția XX, și care este format din exact 2 camere utile, și care nu conține goluri. Intervalele care se pot forma respectând aceste condiții sunt: camera 5 urmată de camera 4 și camera 5 urmată de camera 3. Aceste două intervale au lungimile e4s5=105=5e_4 - s_5 = 10 - 5 = 5, respectiv e3s5=115=6e_3 - s_5 = 11 - 5 = 6. Răspunsul este, astfel, 6.

Log in or sign up to be able to send submissions!