Detalii evaluare #58181819

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 #58181819 Utilizator Anton Bianca (Pisiknoir12)
Fișier admitere.cpp Dimensiune 2.58 KB
Data încărcării 19 Mai 2025, 09:46 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

admitere.cpp:57:5: error: stray '\310' in program
     int cerința;

     ^
admitere.cpp:57:5: error: stray '\233' in program
admitere.cpp:58:5: error: stray '\310' in program
     cin >> cerința;

     ^
admitere.cpp:58:5: error: stray '\233' in program
admitere.cpp:76:5: error: stray '\310' in program
     if (cerința == 1) {

     ^
admitere.cpp:76:5: error: stray '\233' in program
admitere.cpp: In function 'int maxAdmitereSameClass(int, const std::vector<int>&, const std::vector<int>&, const std::vector<std::pair<int, int> >&)':
admitere.cpp:14:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < M && i < realAdmis.size(); i++) {

                                                 ^
admitere.cpp:24:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < M && i < umanAdmis.size(); i++) {

                                                 ^
admitere.cpp: In function 'int maxAdmitereDifferentClasses(int, const std::vector<int>&, const std::vector<int>&, const std::vector<std::pair<int, int> >&)':
admitere.cpp:40:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < privilegiate.size(); i++) {

                                           ^
admitere.cpp: In function 'int main()':
admitere.cpp:57:16: error: expected initializer before 'a'
     int cerința;

                ^
admitere.cpp:58:12: error: 'cerin' was not declared in this scope
     cin >> cerința;

            ^
admitere.cpp:58:19: error: expected ';' before 'a'
     cin >> cerința;

                   ^
admitere.cpp:76:16: error: expected ')' before 'a'
     if (cerința == 1) {

                ^
admitere.cpp:82:9: error: expected primary-expression before '}' token
         } 

         ^
admitere.cpp:82:9: error: expected ';' before '}' token
admitere.cpp:85:10: error: expected ';' at end of input
          max

          ^
admitere.cpp:85:10: error: statement cannot resolve address of overloaded function
admitere.cpp:85:10: error: expected '}' at end of input
admitere.cpp:85:10: error: expected '}' at end of input
In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0,
                 from /usr/include/c++/4.8/ios:40,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from admitere.cpp:1:
/usr/include/c++/4.8/bits/stl_algobase.h: In instantiation of 'static _OI std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m(_II, _II, _OI) [with _II = const std::pair<int, int>*; _OI = int*]':
/usr/include/c++/4.8/bits/stl_algobase.h:390:70:   required from '_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = const std::pair<int, int>*; _OI = int*]'
/usr/include/c++/4.8/bits/stl_algobase.h:428:38:   required from '_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _OI = __gnu_cxx::__normal_iterator<int*, std::vector<int> >]'
/usr/include/c++/4.8/bits/stl_algobase.h:460:17:   required from '_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _OI = __gnu_cxx::__normal_iterator<int*, std::vector<int> >]'
/usr/include/c++/4.8/bits/vector.tcc:629:44:   required from 'void std::vector<_Tp, _Alloc>::_M_range_insert(std::vector<_Tp, _Alloc>::iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = int*]'
/usr/include/c++/4.8/bits/stl_vector.h:1291:59:   required from 'void std::vector<_Tp, _Alloc>::_M_insert_dispatch(std::vector<_Tp, _Alloc>::iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = int*]'
/usr/include/c++/4.8/bits/stl_vector.h:1046:73:   required from 'void std::vector<_Tp, _Alloc>::insert(std::vector<_Tp, _Alloc>::iterator, _InputIterator, _InputIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; <template-parameter-2-2> = void; _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = int*]'
admitere.cpp:12:79:   required from here
/usr/include/c++/4.8/bits/stl_algobase.h:335:18: error: cannot convert 'const std::pair<int, int>' to 'int' in assignment
        *__result = *__first;
                  ^
In file included from /usr/include/c++/4.8/vector:62:0,
                 from admitere.cpp:2:
/usr/include/c++/4.8/bits/stl_construct.h: In instantiation of 'void std::_Construct(_T1*, _Args&& ...) [with _T1 = int; _Args = {const std::pair<int, int>&}]':
/usr/include/c++/4.8/bits/stl_uninitialized.h:75:53:   required from 'static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _ForwardIterator = int*; bool _TrivialValueTypes = false]'
/usr/include/c++/4.8/bits/stl_uninitialized.h:117:41:   required from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _ForwardIterator = int*]'
/usr/include/c++/4.8/bits/stl_uninitialized.h:258:63:   required from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _ForwardIterator = int*; _Tp = int]'
/usr/include/c++/4.8/bits/vector.tcc:637:28:   required from 'void std::vector<_Tp, _Alloc>::_M_range_insert(std::vector<_Tp, _Alloc>::iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = int*]'
/usr/include/c++/4.8/bits/stl_vector.h:1291:59:   required from 'void std::vector<_Tp, _Alloc>::_M_insert_dispatch(std::vector<_Tp, _Alloc>::iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = int*]'
/usr/include/c++/4.8/bits/stl_vector.h:1046:73:   required from 'void std::vector<_Tp, _Alloc>::insert(std::vector<_Tp, _Alloc>::iterator, _InputIterator, _InputIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const std::pair<int, int>*, std::vector<std::pair<int, int> > >; <template-parameter-2-2> = void; _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = int*]'
admitere.cpp:12:79:   required from here
/usr/include/c++/4.8/bits/stl_construct.h:75:7: error: cannot convert 'const std::pair<int, int>' to 'int' in initialization
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^

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