Detalii evaluare #34730365

Rezumat problemă

Aleku Turcul este la ora de matematica. În timp ce el încearcă să-și dea seama dacă 1+1=2, profesorul scrie pe tablă o problemă ceva mai complicată. Se dau Q queryuri și o listă S cu P elemente egale cu 0. Notăm cu A un șir, care inițial este vid. Queryurile pot fi de forma:
- 0 x (inserează valoarea x în A)
- 1 x (șterge valoarea x din A; se garantează că există cel puțin o valoare de x în A)
Se garantează că A nu va fi niciodată vid după vreun query. După fiecare query profesorul îi pune lui Aleku următoarea întrebare: oare pot așeza în lista S toate numerele din A (nu neapărat în ordinea în care se află în A) astfel încât:

  • elementele din A se vor așeza în S pe poziții distincte, restul pozițiilor din S fiind ocupate de elemente cu valoarea 0
  • fie S[i] un element nenul din S și S[j] cel mai apropiat element nenul care se află în stânga lui S[i] în S. Atunci următoarea condiție trebuie respectată: i - j ≥ S[i]
  • fie f poziția celui mai din stânga element nenul din S. Atunci f ≥ S[f].

Dacă răspunsul la întrebarea profesorului este da, atunci să se spună și câte configurații diferite se pot obține. Deoarece răspunsul la întrebare poate fi foarte mare, acesta se va afișa modulo 1.000.000.007. Dacă răspunsul este nu, se va afișa -1.
Ajutați-l pe Aleku sa răspundă corect la întrebările profesorului pentru ca sa obțină nota 10. Media lui depinde de aceasta!

Detalii

Problema The Grade Operații I/O tastatură/ecran
Limita timp 0.5 secunde Limita memorie Total: 256 MB / Stivă 8 MB
Id soluție #34730365 Utilizator Muresan Luca (LucaLucaM)
Fișier the_grade.cpp Dimensiune 939 B
Data încărcării 11 Februarie 2022, 10:55 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

the_grade.cpp: In function 'int exp(int, int)':
the_grade.cpp:16:19: warning: value computed is not used [-Wunused-value]
             (P*=A)%mod;

                   ^
the_grade.cpp: In function 'int nr_combinari(int)':
the_grade.cpp:40:50: error: expected primary-expression before ')' token
         ans = (ans*invers_modular(factorial(it), ))%mod;

                                                  ^
the_grade.cpp: In function 'int main()':
the_grade.cpp:56:14: error: no match for 'operator[]' (operand types are 'std::unordered_set<int>' and 'int')
             f[x]+=x-1, blocks++;

              ^
the_grade.cpp:56:24: error: 'blocks' was not declared in this scope
             f[x]+=x-1, blocks++;

                        ^
the_grade.cpp:58:14: error: no match for 'operator[]' (operand types are 'std::unordered_set<int>' and 'int')
             f[x]-=x-1,blocks--;

              ^
the_grade.cpp:58:23: error: 'blocks' was not declared in this scope
             f[x]-=x-1,blocks--;

                       ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema The Grade face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.