Detalii evaluare #57832446

Rezumat problemă

Să ne imaginăm faptul că la un anumit liceu există doar două clase per generație: una de Real și una de Uman. În prezent au loc înscrierile pentru clasa a IX-a. Cele două clase au fiecare câte M locuri disponibile, atât la Real, cât și la Uman. Dacă lista de elevi înscriși la o anumită clasă conține mai mult de M elevi, vor fi admiși acei M elevi care au notele cele mai mari. Ambele clase au deja M elevi înscriși, iar pentru fiecare se știe nota cu care a fost înscris la clasa respectivă.

Mai există însă N elevi, singurii încă neînscriși, care sunt privilegiați în acest proces (fiindcă au terminat gimnaziul la acest liceu). Privilegiul lor constă în următorul fapt: ei se pot înscrie acum, după ce înscrierile publice au fost încheiate, și se cunosc notele de înscriere la ambele clase. Fiecare din cei N elevi are câte două note: nota cu care ar fi înscris la Real și nota cu care ar fi înscris la Uman (acestea pot fi diferite, deoarece examenele de admitere de la cele două clase diferă). Fiecare din cei N elevi va alege să se înscrie în maxim o clasă. Ei își vor coordona alegerile astfel încât să maximizeze numărul de elevi admiși. Deoarece calculele devin destul de complicate, aceștia s-ar putea folosi de ajutorul vostru. Ei doresc răspunsul la două întrebări.

(1) Care este numărul maxim de elevi privilegiaţi care pot fi admiși dacă se pune restricția suplimentară ca toți elevii privilegiați admiși să fie admiși la aceeași clasă?
(2) Care este numărul maxim de elevi privilegiaţi care pot fi admiși dacă aceștia se pot înscrie la clase diferite?

Detalii

Problema admitere Operații I/O admitere.in/admitere.out
Limita timp 1.5 secunde Limita memorie Total: 32 MB / Stivă 8 MB
Id soluție #57832446 Utilizator Raia Eric (EricSquirtle)
Fișier admitere.cpp Dimensiune 2.31 KB
Data încărcării 24 Aprilie 2025, 11:41 Scor / rezultat Eroare de compilare

Evaluare

Mesaj compilare

admitere.cpp: In lambda function:
admitere.cpp:32:12: error: expected unqualified-id before '[' token
       auto [r, u] = v[i];

            ^
admitere.cpp:33:29: error: 'r' was not declared in this scope
       int val = ((k == 0) ? r : u);

                             ^
admitere.cpp:33:33: error: 'u' was not declared in this scope
       int val = ((k == 0) ? r : u);

                                 ^
admitere.cpp: In function 'std::pair<int, std::basic_string<char> > maximalComplete(int)':
admitere.cpp:46:10: error: expected unqualified-id before '[' token
     auto [cnt, curr] = check(mid);

          ^
admitere.cpp:47:8: error: 'cnt' was not declared in this scope
     if(cnt == mid){

        ^
admitere.cpp:49:13: error: 'curr' was not declared in this scope
       ans = curr;

             ^
admitere.cpp: In function 'int main()':
admitere.cpp:76:10: error: expected unqualified-id before '[' token
     auto [best, str] = ans;

          ^
admitere.cpp:77:13: error: 'best' was not declared in this scope
     fout << best << "\n" << str;

             ^
admitere.cpp:77:29: error: 'str' was not declared in this scope
     fout << best << "\n" << str;

                             ^
admitere.cpp:83:14: error: expected unqualified-id before '[' token
         auto [r, u] = v[i];

              ^
admitere.cpp:84:12: error: 'r' was not declared in this scope
         if(r > c[0][x]){

            ^
admitere.cpp:85:33: error: 'u' was not declared in this scope
           candidates.push_back({u, i});

                                 ^
admitere.cpp:85:38: error: no matching function for call to 'std::vector<std::pair<int, int> >::push_back(<brace-enclosed initializer list>)'
           candidates.push_back({u, i});

                                      ^
admitere.cpp:85:38: note: candidates are:
In file included from /usr/include/c++/4.8/vector:64:0,
                 from admitere.cpp:2:
/usr/include/c++/4.8/bits/stl_vector.h:901:7: note: void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<int, int>]
       push_back(const value_type& __x)
       ^
/usr/include/c++/4.8/bits/stl_vector.h:901:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::pair<int, int>&}'
/usr/include/c++/4.8/bits/stl_vector.h:919:7: note: void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<int, int>]
       push_back(value_type&& __x)
       ^
/usr/include/c++/4.8/bits/stl_vector.h:919:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<int, int> >::value_type&& {aka std::pair<int, int>&&}'
admitere.cpp:88:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if(candidates.size() < x){

                              ^
admitere.cpp:94:14: error: expected unqualified-id before '[' token
         auto [u, idx] = candidates[i];

              ^
admitere.cpp:95:14: error: 'idx' was not declared in this scope
         used[idx] = true;

              ^
admitere.cpp:99:10: error: expected unqualified-id before '[' token
     auto [best, str] = ans;

          ^
admitere.cpp:100:13: error: 'best' was not declared in this scope
     fout << best << "\n" << str;

             ^
admitere.cpp:100:29: error: 'str' was not declared in this scope
     fout << best << "\n" << str;

                             ^

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 admitere 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ă.

Du-te sus!