#1619
Alex s-a angajat în vacanța de vară ca barman. Pentru că îi place să transforme munca la bar într-un spectacol, uneori aranjează mai multe pahare identice ca formă și dimensiune, dar de capacități diferite, sub forma unei stive.
Un pahar din stivă, cu excepția celor de la bază, se sprijină pe exact două pahare din rândul de mai jos. Paharele sunt numerotate ca în imaginea de mai jos. Nivelurile din stivă sunt de asemenea numerotate, începând cu 1
, de la vârf, adică paharul 1
se află pe nivelul 1
, paharele 2
și 3
pe nivelul 2
, paharele 4
, 5
și 6
sunt pe nivelul 3
, ș.a.m.d.
Alex toarnă în fiecare secundă câte un mililitru de apă (o picătură) în paharul numărul 1
. Paharele au o proprietate ciudată atunci când sunt pline: primul mililitru care ajunge într-un pahar plin se va scurge instantaneu în paharul aflat imediat în stânga sa pe rândul de dedesubt, următorul mililitru se va scurge instantaneu în paharul aflat imediat în dreapta sa pe rândul de dedesubt și tot așa, alternativ câte o picătură în cele două pahare.
De exemplu când paharul 2
este plin, primul mililitru ce va ajunge în el se va scurge în paharul 4
, următorul mililitru se scurge în paharul 5
, al treilea mililitru se va scurge din nou în paharul 4
, ș.a.m.d.
Atunci când într-un pahar plin aflat la baza stivei ajunge un nou mililitru de apă, acesta se scurge instantaneu pe masă.
Cunoscând numărul de pahare din rândul de la baza stivei și faptul că stiva este completă (toate rândurile conțin numărul maxim de pahare ce se pot așeza după regula de mai sus, iar pe cel mai de sus rând se găsește un singur pahar), să se scrie un program care determină:
OJI 2016, Clasa a IX-a
Problema | Pic | Operații I/O |
![]() pic.in /pic.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 4 MB
/
Stivă 4 MB
|
Id soluție | #57943682 | Utilizator | |
Fișier | pic.cpp | Dimensiune | 1.97 KB |
Data încărcării | 04 Mai 2025, 14:42 | Scor / rezultat | Eroare de compilare |
pic.cpp: In function 'int main()': pic.cpp:83:14: error: expected unqualified-id before '[' token auto [plin, pierdere] = check(mij); ^ pic.cpp:85:13: error: 'plin' was not declared in this scope if (plin >= tot) { ^ pic.cpp:86:25: error: 'pierdere' was not declared in this scope rez = {mij, pierdere}; ^ pic.cpp:86:17: error: no match for 'operator=' (operand types are 'std::pair<long long int, long long int>' and '<brace-enclosed initializer list>') rez = {mij, pierdere}; ^ pic.cpp:86:17: note: candidates are: In file included from /usr/include/c++/4.8/bits/stl_algobase.h:64:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from pic.cpp:1: /usr/include/c++/4.8/bits/stl_pair.h:158:7: note: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(const std::pair<_T1, _T2>&) [with _T1 = long long int; _T2 = long long int] operator=(const pair& __p) ^ /usr/include/c++/4.8/bits/stl_pair.h:158:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const std::pair<long long int, long long int>&' /usr/include/c++/4.8/bits/stl_pair.h:166:7: note: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(std::pair<_T1, _T2>&&) [with _T1 = long long int; _T2 = long long int] operator=(pair&& __p) ^ /usr/include/c++/4.8/bits/stl_pair.h:166:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::pair<long long int, long long int>&&' /usr/include/c++/4.8/bits/stl_pair.h:177:2: note: template<class _U1, class _U2> std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(const std::pair<_U1, _U2>&) [with _U1 = _U1; _U2 = _U2; _T1 = long long int; _T2 = long long int] operator=(const pair<_U1, _U2>& __p) ^ /usr/include/c++/4.8/bits/stl_pair.h:177:2: note: template argument deduction/substitution failed: pic.cpp:86:17: note: couldn't deduce template parameter '_U1' rez = {mij, pierdere}; ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:64:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from pic.cpp:1: /usr/include/c++/4.8/bits/stl_pair.h:186:2: note: template<class _U1, class _U2> std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(std::pair<_U1, _U2>&&) [with _U1 = _U1; _U2 = _U2; _T1 = long long int; _T2 = long long int] operator=(pair<_U1, _U2>&& __p) ^ /usr/include/c++/4.8/bits/stl_pair.h:186:2: note: template argument deduction/substitution failed: pic.cpp:86:17: note: couldn't deduce template parameter '_U1' rez = {mij, pierdere}; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Pic face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
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ă.