Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | defrag.in, defrag.out | Sursă | OJI 2015 clasa a 9-a |
|---|---|---|---|
| Autor | Ciprian Cheșcă | Adăugată de |
|
| Timp de execuție pe test | 0.05 sec | Limită de memorie | 4096 KB |
| Scorul tău | N/A | Dificultate | N/A |
Vezi soluțiile trimise | Statistici
Defrag (clasa a 9-a)
Discul dur (hard disk) este un dispozitiv utilizat pentru stocarea datelor. Stocarea se face pe o suprafață magnetică dispusă pe platane rotunde metalice. Pe un platan, datele sunt organizate în piste și sectoare, iar zona aflată la intersecția dintre o pistă și un sector poartă denumirea de cluster.
Un cluster poate avea două stări: liber, dacă nu conține date, sau ocupat, atunci când conține date.
Un platan se numește defragmentat dacă toți clusterii ocupați de pe fiecare pistă sunt așezați în ordine consecutivă. Defragmentarea se realizează prin mutarea unor clusteri ocupați și are rolul de a micșora timpul de acces la date. Mutarea unui cluster reprezintă transferul datelor de la un cluster ocupat către un cluster liber de pe aceeași pistă.



Cerință
Cunoscând numărul de piste P și de sectoare S al unui platan, numărul și poziția clusterilor ocupați, să se scrie un program care determină:
- numărul de piste care au toți clusterii liberi;
- numărul minim de mutări de clusteri, pentru fiecare pistă în parte, astfel încât platanul să devină defragmentat.
Date de intrare
Pe prima linie a fișierului de intrare defrag.in se găsește numărul natural V a cărui valoare poate fi doar 1 sau 2.
Pe a doua linie a fișierului de intrare se găsesc două numere naturale P și S, separate printr-un spațiu, cu semnificația din enunț.
A treia linie conține un număr natural C reprezentând numărul total de clusteri ocupați de pe platan, iar pe fiecare din următoarele C linii se găsește câte o pereche de valori pi și si, $1 ≤ i ≤ C, separate printr-un spațiu, reprezentând pista, respectiv sectorul unde se află fiecare cluster ocupat.
Date de ieșire
În fișierul de ieșire defrag.out ...
Restricții
- ... ≤ ... ≤ ...
Exemplu
| defrag.in | defrag.out |
|---|---|
| This is some text written on multiple lines. |
This is another text written on multiple lines. |
Explicație
...
Poți vedea testele pentru această problemă accesând