cursuri

Time limit: 0.2s Memory limit: 64MB Input: cursuri.in Output: cursuri.outPoints by default: 10p

Într-o tabără de vară se programează susținerea unor cursuri în KK săli de clasă. Sunt NN profesori care și-au exprimat dorința de a participa, fiecare dintre ei specificând intervalul de timp [ai,bia_i, b_i] în care își poate susține cursul. Programarea pe săli a profesorilor trebuie să țină cont de faptul că într-o clasă, la un moment dat, nu poate preda decât un singur profesor.

Cerință

Cunoscându-se faptul că organizatorii doresc susținerea a cât mai multor cursuri, să se determine:

  1. Numărul maxim de cursuri care pot fi programate în cele KK săli de clasă, ținând cont de restricția indicată.
  2. În dorința de a programa toate cursurile, în cele KK săli, organizatorii decid să modifice durata cursurilor, păstrând însă neschimbată ora de început a lor. Astfel, ei hotărăsc ca toate cursurile să dureze un interval egal de timp, care însă nu va depăși durata celui mai lung curs propus inițial de unul dintre cei NN profesori. Determinați care poate fi durata maximă pe care o pot avea cursurile în aceste condiții.

Date de intrare

În fișierul de intrare cursuri.in se găsește pe prima linie un număr natural CC. Pentru toate testele, CC poate lua numai valorile 11 sau 22. Pe linia a doua se găsește o pereche de numere naturale N KN \ K, separate printr-un spațiu, reprezentând numărul profesorilor și numărul de săli de clasă. Pe următoarele NN linii se găsesc perechi de numere naturale ai bia_i \ b_i, care reprezintă intervalele de timp în care cei NN profesori își susțin cursurile. Numerele în cadrul unei linii sunt separate printr-un spațiu.

Date de ieșire

Dacă valoarea lui CC este 11, se va rezolva numai punctul 11) din cerințe. În acest caz, fişierul de ieşire cursuri.out va conține pe prima linie un număr natural reprezentând numărul maxim de cursuri care pot fi programate în cele K săli de clasă, ținând cont de restricția indicată.

Dacă valoarea lui CC este 22, se va rezolva numai punctul 22) din cerințe. În acest caz, fişierul de ieşire cursuri.out va conține pe prima linie un număr natural reprezentând durata maximă pe care o pot avea cele NN cursuri, astfel încât toate să poată fi susținute în cele KK săli disponibile.

Restricții și precizări

  • 1N1 0001 \leq N \leq 1 \ 000;
  • 1K1 0001 \leq K \leq 1 \ 000;
  • 1ai<bi100 0001 \leq a_i < b_i \leq 100 \ 000;
  • În cazul cerinței 22 se garantează că pentru toate testele există soluție
  • Pentru rezolvarea corectă a primei cerinţe se acordă 4545 de puncte, iar pentru rezolvarea corectă a celei de a doua cerințe se acordă 4545 de puncte. Se acordă 1010 puncte din oficiu.

Exemplul 1

cursuri.in

1
4 2
2 16
1 3
3 18
1 20

cursuri.out

3

Explicație

O variantă de programare optimă este următoarea:

  • în prima sală se vor susține cursurile programate între [1,3][1,3] şi [3,18][3,18]
  • în a doua clasă se susține cursul programat între [1,20][1,20]

Exemplul 2

cursuri.in

2
4 2
5 12
9 18
1 3
1 7

cursuri.out

4

Explicație

Durata maximă pe care o pot avea toate cursurile este 44.
Cursul al treilea se va mări și se va desfășura între [1,5][1,5], celelalte se vor micșora. Cursurile vor fi distribuite în cele două săli astfel:
Sala 1: al treilea și primul profesor programați între [1,5][1,5] respectiv [5,9][5,9];
Sala 2: al patrulea și al doilea profesor programați între [1,5][1,5] respectiv [9,13][9,13];

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