#1701
Birouri
Arhi şi-a propus să extindă clădirea de birouri pe care a proiectat-o iniţial pe un singur nivel numerotat cu
1
, împărţit în n*n
zone pătratice de latură 1
, fiecare corespunzând unui birou, prin construirea mai multor niveluri. În colţurile tuturor birourilor se construiesc grinzi de rezistenţă. Pentru a asigura rezistenţa întregii clădiri, Arhi va proiecta niveluri noi, numerotate cu 2
, 3
,… atât timp cât conțin cel puțin un birou și sunt respectate următoarele patru reguli:
k
(k>1
), construită deasupra unui birou de pe nivelul k-1
, se va suprapune exact peste una dintre laturile biroului, sau îl va străbate în diagonală.Birourile de pe nivelul k
(k>1
), vor fi construite exact deasupra celor de pe nivelul precedent, astfel, nivelurile 2
, 4
etc. vor avea lângă ziduri spaţii triunghiulare care nu vor aparţine niciunui birou.
Numerele inscripţionate pe birouri în imaginea de mai sus, indică nivelul corespunzător birourilor vizibile de deasupra clădirii.
Cunoscându-se lungimea n
a laturii primului nivel al clădirii, să se determine:
ONI 2016, clasa a VII-a
Problema | Birouri | Operații I/O |
![]() birouri.in /birouri.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 2 MB
/
Stivă 2 MB
|
Id soluție | #49747102 | Utilizator | |
Fișier | birouri.cpp | Dimensiune | 962 B |
Data încărcării | 13 Martie 2024, 19:46 | Scor / rezultat | Eroare de compilare |
birouri.cpp:6:17: warning: character constant too long for its type [enabled by default] assign(fin, 'birouri.in'); ^ birouri.cpp:7:17: warning: character constant too long for its type [enabled by default] assign(fout,'birouri.out'); ^ birouri.cpp:1:1: error: 'program' does not name a type program CS_birouri; ^ birouri.cpp:2:1: error: 'var' does not name a type var ^ birouri.cpp:4:5: error: 'fin' does not name a type fin, fout:text; ^ birouri.cpp:5:1: error: 'begin' does not name a type begin ^ birouri.cpp:7:11: error: expected constructor, destructor, or type conversion before '(' token assign(fout,'birouri.out'); ^ birouri.cpp:8:10: error: expected constructor, destructor, or type conversion before '(' token reset(fin); rewrite(fout); ^ birouri.cpp:8:24: error: expected constructor, destructor, or type conversion before '(' token reset(fin); rewrite(fout); ^ birouri.cpp:9:15: error: expected constructor, destructor, or type conversion before '(' token readln(fin, c, n); ^ birouri.cpp:10:5: error: 'm' does not name a type m:=n; ^ birouri.cpp:11:9: error: 'repeat' does not name a type repeat ^ birouri.cpp:14:13: error: expected unqualified-id before 'if' if niv mod 2 = 1 then ^ birouri.cpp:19:21: error: 'p' does not name a type p := k * k div 2 - k; ^ birouri.cpp:20:13: error: 'b' does not name a type b := b + p; ^ birouri.cpp:21:21: error: expected unqualified-id before 'if' if p = 0 then dec(niv); ^ birouri.cpp:22:21: error: expected unqualified-id before 'if' if k mod 4 = 0 then begin ^ birouri.cpp:24:17: error: 'n' does not name a type n := k; m := k ^ birouri.cpp:24:25: error: 'm' does not name a type n := k; m := k ^ birouri.cpp:27:35: error: 'm' does not name a type n := n div 2 - 1; m := n + 2 ^ birouri.cpp:30:9: error: 'until' does not name a type until not((n <> 0) and (n mod 2 = 0)); ^ birouri.cpp:31:9: error: expected unqualified-id before 'if' if c=1 then ^ birouri.cpp:35:10: error: expected constructor, destructor, or type conversion before '(' token close(fin); close(fout); ^ birouri.cpp:35:22: error: expected constructor, destructor, or type conversion before '(' token close(fin); close(fout); ^ birouri.cpp:36:1: error: 'end' does not name a type end. ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Birouri 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ă.