Vizualizare soluţie
Titlul problemei: | atac |
Numărul problemei: | 1 |
Runda: | |
Soluţie: | Problema se rezolva cu un algoritm sweep, semanand cu
problema mai cunoscuta de a afla aria reuniunii unor dreptunghiuri. Se tine o lista de "evenimente" - segmente verticale care "incep" un dreptunghi si care "termina" un dreptunghi (considerand inceputul/sfarsitul pe orizontala). Aceasta lista de segmente verticale se sorteaza dupa X si apoi se parcurge. Se tine o structura care suporta adaugare/scadere pe intervale si interogare de maxim (si numar de valori unde se atinge maximul). Solutia oficiala foloseste un arbore de intervale. Intre doua evenimente, se interogheaza maximul si eventual se innoieste maximul global si aria.
Complexitate: O(NlogN) La evaluare, pentru fiecare test s-au acordat 10 puncte.
Din arhiva de teste lipseste ultimul test, din cauza dimensiunii. Il pot trimite la cerere prin e-mail.
|