#1236
Manole este extrem de răcit. Din această cauză a mers la medicul de familie care l-a sfătuit urmeze un tratament cu N pastile, din care trebuie să ia în fiecare zi câte o jumătate. A cumpărat de la farmacie o cutie în care se aflau exact N pastile, fiecare dintre ele având pe suprafață o dungă care marchează jumătatea ei.
Manole începe să își ia tratamentul și constată că poate proceda doar astfel:
Scrieți un program care determină numărul de posibilități în care poate lua toate cele N pastile, procedând după procedeul descris mai sus.
Lot Juniori, Valcea, 2015
| Problema | Pastile | Operații I/O |
pastile.in/pastile.out
|
|---|---|---|---|
| Limita timp | 0.4 secunde | Limita memorie |
Total: 8 MB
/
Stivă 8 MB
|
| Id soluție | #64598487 | Utilizator | |
| Fișier | pastile.cpp | Dimensiune | 17.95 KB |
| Data încărcării | 17 Mai 2026, 22:50 | Scor/rezultat | Eroare de compilare |
pastile.cpp:844:6: error: expected ‘}’ at end of input 844 | } | ^ pastile.cpp:214:1: note: to match this ‘{’ 214 | { | ^ pastile.cpp: In member function ‘std::string NrMari::to_string() const’: pastile.cpp:426:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 426 | for(int i=0;i<s.size()/2;i++) | ~^~~~~~~~~~~ pastile.cpp: In member function ‘NrMari& NrMari::operator*=(const NrMari&)’: pastile.cpp:678:37: warning: unused variable ‘j’ [-Wunused-variable] 678 | __int128 carry=0,borrow=0,i,j=0; | ^ pastile.cpp: In function ‘std::pair<NrMari, NrMari> divmod(const NrMari&, const NrMari&)’: pastile.cpp:732:23: error: no matching function for call to ‘abs(const NrMari&)’ 732 | NrMari u = abs(a); | ~~~^~~ In file included from /usr/include/c++/13/cstdlib:79, from /usr/include/c++/13/ext/string_conversions.h:43, from /usr/include/c++/13/bits/basic_string.h:4109, from /usr/include/c++/13/string:54, from /usr/include/c++/13/bits/locale_classes.h:40, from /usr/include/c++/13/bits/ios_base.h:41, from /usr/include/c++/13/ios:44, from /usr/include/c++/13/istream:40, from /usr/include/c++/13/fstream:40, from pastile.cpp:2: /usr/include/stdlib.h:980:12: note: candidate: ‘int abs(int)’ 980 | extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; | ^~~ /usr/include/stdlib.h:980:21: note: no known conversion for argument 1 from ‘const NrMari’ to ‘int’ 980 | extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; | ~~~~^~~ In file included from /usr/include/c++/13/cstdlib:81: /usr/include/c++/13/bits/std_abs.h:79:3: note: candidate: ‘constexpr long double std::abs(long double)’ 79 | abs(long double __x) | ^~~ /usr/include/c++/13/bits/std_abs.h:79:19: note: no known conversion for argument 1 from ‘const NrMari’ to ‘long double’ 79 | abs(long double __x) | ~~~~~~~~~~~~^~~ /usr/include/c++/13/bits/std_abs.h:75:3: note: candidate: ‘constexpr float std::abs(float)’ 75 | abs(float __x) | ^~~ /usr/include/c++/13/bits/std_abs.h:75:13: note: no known conversion for argument 1 from ‘const NrMari’ to ‘float’ 75 | abs(float __x) | ~~~~~~^~~ /usr/include/c++/13/bits/std_abs.h:71:3: note: candidate: ‘constexpr double std::abs(double)’ 71 | abs(double __x) | ^~~ /usr/include/c++/13/bits/std_abs.h:71:14: note: no known conversion for argument 1 from ‘const NrMari’ to ‘double’ 71 | abs(double __x) | ~~~~~~~^~~ /usr/include/c++/13/bits/std_abs.h:61:3: note: candidate: ‘long long int std::abs(long long int)’ 61 | abs(long long __x) { return __builtin_llabs (__x); } | ^~~ /usr/include/c++/13/bits/std_abs.h:61:17: note: no known conversion for argument 1 from ‘const NrMari’ to ‘long long int’ 61 | abs(long long __x) { return __builtin_llabs (__x); } | ~~~~~~~~~~^~~ /usr/include/c++/13/bits/std_abs.h:56:3: note: candidate: ‘long int std::abs(long int)’ 56 | abs(long __i) { return __builtin_labs(__i); } | ^~~ /usr/include/c++/13/bits/std_abs.h:56:12: note: no known conversion for argument 1 from ‘const NrMari’ to ‘long int’ 56 | abs(long __i) { return __builtin_labs(__i); } | ~~~~~^~~ pastile.cpp:733:23: error: no matching function for call to ‘abs(const NrMari&)’ 733 | NrMari v = abs(b); | ~~~^~~ /usr/include/stdlib.h:980:12: note: candidate: ‘int abs(int)’ 980 | extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; | ^~~ /usr/include/stdlib.h:980:21: note: no known conversion for argument 1 from ‘const NrMari’ to ‘int’ 980 | extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; | ~~~~^~~ /usr/include/c++/13/bits/std_abs.h:79:3: note: candidate: ‘constexpr long double std::abs(long double)’ 79 | abs(long double __x) | ^~~ /usr/include/c++/13/bits/std_abs.h:79:19: note: no known conversion for argument 1 from ‘const NrMari’ to ‘long double’ 79 | abs(long double __x) | ~~~~~~~~~~~~^~~ /usr/include/c++/13/bits/std_abs.h:75:3: note: candidate: ‘constexpr float std::abs(float)’ 75 | abs(float __x) | ^~~ /usr/include/c++/13/bits/std_abs.h:75:13: note: no known conversion for argument 1 from ‘const NrMari’ to ‘float’ 75 | abs(float __x) | ~~~~~~^~~ /usr/include/c++/13/bits/std_abs.h:71:3: note: candidate: ‘constexpr double std::abs(double)’ 71 | abs(double __x) | ^~~ /usr/include/c++/13/bits/std_abs.h:71:14: note: no known conversion for argument 1 from ‘const NrMari’ to ‘double’ 71 | abs(double __x) | ~~~~~~~^~~ /usr/include/c++/13/bits/std_abs.h:61:3: note: candidate: ‘long long int std::abs(long long int)’ 61 | abs(long long __x) { return __builtin_llabs (__x); } | ^~~ /usr/include/c++/13/bits/std_abs.h:61:17: note: no known conversion for argument 1 from ‘const NrMari’ to ‘long long int’ 61 | abs(long long __x) { return __builtin_llabs (__x); } | ~~~~~~~~~~^~~ /usr/include/c++/13/bits/std_abs.h:56:3: note: candidate: ‘long int std::abs(long int)’ 56 | abs(long __i) { return __builtin_labs(__i); } | ^~~ /usr/include/c++/13/bits/std_abs.h:56:12: note: no known conversion for argument 1 from ‘const NrMari’ to ‘long int’ 56 | abs(long __i) { return __builtin_labs(__i); } | ~~~~~^~~ pastile.cpp: At global scope: pastile.cpp:844:6: error: expected unqualified-id at end of input 844 | } | ^ pastile.cpp: In instantiation of ‘varray<T>::varray(int) [with T = long long int]’: pastile.cpp:345:15: required from here pastile.cpp:12:9: warning: ‘varray<long long int>::sz’ will be initialized after [-Wreorder] 12 | int sz=0; | ^~ pastile.cpp:11:8: warning: ‘long long int* varray<long long int>::_elem’ [-Wreorder] 11 | T* _elem; | ^~~~~ pastile.cpp:57:5: warning: when initialized here [-Wreorder] 57 | varray(int _sz=0): sz(_sz), _elem(nullptr), sz_max(_sz) | ^~~~~~ pastile.cpp: In instantiation of ‘varray<T>::varray(const varray<T>&) [with T = long long int]’: pastile.cpp:367:34: required from here pastile.cpp:12:9: warning: ‘varray<long long int>::sz’ will be initialized after [-Wreorder] 12 | int sz=0; | ^~ pastile.cpp:11:8: warning: ‘long long int* varray<long long int>::_elem’ [-Wreorder] 11 | T* _elem; | ^~~~~ pastile.cpp:64:5: warning: when initialized here [-Wreorder] 64 | varray(const varray& other): sz(other.size()), _elem(new T[other.size()]), sz_max(other.size()) | ^~~~~~ pastile.cpp: In instantiation of ‘varray<T>::varray(int) [with T = __int128]’: pastile.cpp:614:29: required from here pastile.cpp:12:9: warning: ‘varray<__int128>::sz’ will be initialized after [-Wreorder] 12 | int sz=0; | ^~ pastile.cpp:11:8: warning: ‘__int128* varray<__int128>::_elem’ [-Wreorder] 11 | T* _elem; | ^~~~~ pastile.cpp:57:5: warning: when initialized here [-Wreorder] 57 | varray(int _sz=0): sz(_sz), _elem(nullptr), sz_max(_sz) | ^~~~~~
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Pastile 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ă.