defrag

Time limit: 0.1s Memory limit: 4MB Input: defrag.in Output: defrag.out

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 PP și de sectoare SS al unui platan, numărul și poziția clusterilor ocupați, să se scrie un program care determină:

  1. numărul de piste care au toți clusterii liberi;
  2. 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 VV a cărui valoare poate fi doar 11 sau 22.
Pe a doua linie a fișierului de intrare se găsesc două numere naturale PP și SS, separate printr-un spaţiu, cu semnificaţia din enunţ.
A treia linie conţine un număr natural CC reprezentând numărul total de clusteri ocupați de pe platan, iar pe fiecare din următoarele CC linii se găsește câte o pereche de valori pip_i şi sis_i, 1iC1 \leq i \leq C, separate printr-un spaţiu, reprezentând pista, respectiv sectorul unde se află fiecare cluster ocupat.

Date de ieşire

Fișierul de ieșire este defrag.out.
Dacă valoarea lui VV este 11 atunci fişierul de ieşire va conţine pe prima linie un număr natural ce reprezintă numărul de piste care au toți clusterii liberi.
Dacă valoarea lui VV este 22 atunci fişierul de ieşire va conține pe prima linie PP numere naturale notate MiM_i, 1iP1 \leq i \leq P, separate prin câte un singur spațiu, unde MiM_i reprezintă numărul minim de mutări de clusteri, dintre cei aflați pe pista ii, astfel încât pe pista ii clusterii ocupați să se găsească într-o ordine consecutivă.

Restricţii şi precizări

  • 1P1001 \leq P \leq 100
  • 1S3601 \leq S \leq 360
  • 1CPS1 \leq C \leq P \cdot S
  • Pistele sunt numerotate de la 11 la PP începând cu pista exterioară.
  • Sectoarele sunt numerotate de la 11 la SS în sensul acelor de ceasornic începând cu sectorul 11.
  • Dacă o pistă are toți clusterii liberi, atunci valoarea cerută la a doua cerință este 00.
  • 20%20\% din teste vor avea valoarea V=1V = 1, iar 80%80\% din teste vor avea valoarea V=2V = 2.

Exemplul 1

defrag.in

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

defrag.out

1

Explicație

Datele corespund figurilor anterioare. V=1V = 1, deci se rezolvă NUMAI prima cerință.

  • Numărul de piste este P=4P = 4, numărul de sectoare este S=8S = 8.
  • Numărul total de clusteri ocupați este C=10C = 10 (cei marcați cu negru).
  • Pe prima pistă sunt 44 clusteri ocupați, în sectoarele 11, 33, 55 și 77.
  • Pe a doua pistă sunt 22 clusteri ocupați, în sectoarele 22 și 44.
  • Pe a treia pistă nu sunt clusteri ocupați.
  • Pe a patra pistă sunt 44 clusteri ocupați, în sectoarele 11, 55, 66 și 88.
    O singură pistă are toți clusterii liberi, pista numărul 33, deci valoarea cerută este 11.

Exemplul 2

defrag.in

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

defrag.out

2 1 0 1

Explicație

Datele corespund figurilor anterioare. V=2V = 2, deci se rezolvă NUMAI a doua cerință.

  • Pe prima pistă sunt necesare minim două mutări de clusteri pentru ca toți clusterii ocupați să se găsească într-o ordine consecutivă, deci valoarea cerută este 22.
  • Pe a doua pistă este suficientă o singură mutare de cluster, pentru ca toți clusterii ocupați să se găsească într-o ordine consecutivă, deci valoarea cerută este 11.
  • Pe a treia pistă nu sunt clusteri ocupați, deci valoarea cerută este 00.
  • Pe a patra pistă este suficientă o singură mutare de cluster, pentru ca toți clusterii ocupați să se găsească într-o ordine consecutivă, deci valoarea cerută este 11.

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