#149
Claudia vrea să construiască o scară cu N trepte astfel încât prima treaptă să fie la înălţimea 0 şi ultima treaptă să fie la înălţimea H. Fiind pusă pe glume, ea îi cere arhitectului să proiecteze o scară neobişnuită, în care treptele sunt dispuse astfel încât, la un moment dat, să poţi urca, coborî sau rămâne la acelaşi nivel. Pentru a fi uşor de urcat sau coborât, valoarea absolută a diferenţei dintre înălţimile la care se află oricare două trepte consecutive trebuie să fie mai mică sau egală cu o valoare dată, K. Nicio treaptă nu se poate afla la o înălţime negativă sau la o înălţime mai mare decât H.
Scrieţi un program care să determine numărul de scări diferite cu N trepte, ce pot fi construite respectând cerinţele Claudiei. Deoarece numărul de scări poate fi foarte mare, determinaţi restul împărţirii acestui număr la 666013.
Urmasii lui Moisil, Iasi, 2013
| Problema | scara | Operații I/O |
scara.in/scara.out
|
|---|---|---|---|
| Limita timp | 1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #62017262 | Utilizator | |
| Fișier | scara.cpp | Dimensiune | 2.16 KB |
| Data încărcării | 29 Decembrie 2025, 21:27 | Scor/rezultat | Eroare de compilare |
scara.cpp:23:5: error: 'vector' does not name a type vector<vector<int>> d; ^ scara.cpp: In constructor 'portion::portion()': scara.cpp:25:9: error: 'd' was not declared in this scope d.resize(h + 1); ^ scara.cpp: In member function 'void portion::afis()': scara.cpp:32:25: error: 'd' was not declared in this scope cout << d[i][j] << ' '; ^ scara.cpp: In function 'void make_unit()': scara.cpp:53:10: error: 'struct portion' has no member named 'd' UNIT.d.resize(h + 1); ^ scara.cpp:55:14: error: 'struct portion' has no member named 'd' UNIT.d[i].resize(h + 1); ^ scara.cpp:56:14: error: 'struct portion' has no member named 'd' UNIT.d[i][i] = 1; ^ scara.cpp: In function 'portion combine(portion, portion)': scara.cpp:65:38: error: 'struct portion' has no member named 'd' window_a = s(window_a, a.d[from][i]); ^ scara.cpp:67:56: error: 'struct portion' has no member named 'd' if(mid - k > 0) window_a = s(window_a, -a.d[from][mid - k - 1]); ^ scara.cpp:68:56: error: 'struct portion' has no member named 'd' if(mid + k <= h) window_a = s(window_a, a.d[from][mid + k]); ^ scara.cpp:69:17: error: 'struct portion' has no member named 'd' sum.d[from][to] = s(sum.d[from][to], p(window_a, b.d[mid][to])); ^ scara.cpp:69:37: error: 'struct portion' has no member named 'd' sum.d[from][to] = s(sum.d[from][to], p(window_a, b.d[mid][to])); ^ scara.cpp:69:64: error: 'struct portion' has no member named 'd' sum.d[from][to] = s(sum.d[from][to], p(window_a, b.d[mid][to])); ^ scara.cpp: In function 'int main()': scara.cpp:99:27: error: 'struct portion' has no member named 'd' writing(possibilities.d[0][h]); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema scara 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ă.