Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2013-11-20 09:06:16.
Revizia anterioară   Revizia următoare  

Pariuri

Solutia 1: O(N * M + MAXT) - 80 puncte

Avand in vedere ca pentru 80% dintre teste, momentele de timp in care se pariaza erau ≤ 106, puteam retine un vector auxiliar astfel:

  • s[i] = suma de bani castigata in total de catre cei N oameni la momentul de timp i

Printr-o simpla parcurgere a perechilor de tipul (timp, bani) din fisierul de intrare, vom actualiza suma de bani astfel:

  • s[timp] = s[timp] + bani;

De asemenea, este nevoie sa marcam undeva si momentele de timp in care s-au facut pariuri, pentru a sti exact ce momente de timp sa afisam. Astfel, parcurgand cu un contor i momentele de timp de la 1 la 106, daca i este marcat, vom afisa i si s[i].

Solutia 2: O(N * M) - 100 puncte

Bazandu-ne pe acelasi principiu ca si cel anterior, constatam ca putem retina o tabela de dispersie / tabela hash pentru toate momentele de timp in care s-a pariat. Pentru fiecare moment de timp vom retine in hash valoarea de bani castigata de cei N oameni. In final, vom afisa doar momentele de timp care exista in hash.