#1761
Brutar
Renumitul nostru brutar a avut azi noapte un vis tare ciudat: acesta trăia într-un univers paralel în care nu omul îl mănâncă pe blat ci blatul îl mănâncă pe om… (eh, poate nu chiar atât de paralel). Astfel, brutarul nostru a fost atacat de blatul pe care tocmai îl pregătise (pentru prăjituri, evident) și a încercat să scape. Acesta a ieșit din brutărie și a ajuns în fața unui câmp de formă dreptunghiulară, cu dimensiunile cunoscute, ce poate fi împărțit în celule elementare cu latura de o unitate (exact ca o matrice!). Acesta poate intra pe câmp prin orice celulă a primei linii și trebuie să ajungă în orice celulă a ultimei linii (blatul se va întări până va ajunge acolo). Unele celule îi sunt inaccesibile din cauza diverselor obstacole (pietre, pomi, gropi,etc.)
Brutarul nostru se poate deplasa în 6
moduri:
Nord
, Vest
, Sud
, Est
)Mutările speciale vor fi citite din fișier și o mutare se va codifica astfel: xA yB
, unde x
și y
sunt numere naturale nenule iar A
și B
sunt două caractere ce codifică direcția (A
poate fi 'N'
sau 'S'
de la Nord
respectiv Sud
iar B
poate fi ‘E’
sau ‘V’
de la Est
respectiv Vest
)
O mutare specială se poate face dacă celula destinație nu este ocupată de un obstacol și dacă nu implică ieșirea brutarului din matrice.
Brutarul vă roagă să îi specificați un traseu cu număr minim de celule parcurse, ce pornește de pe prima linie și se termină pe ultima linie, pentru a nu fi blătuit (mâncat de blat).
Concursul EMPOWERSOFT, 2016
Problema | Brutar | Operații I/O |
![]() brutar.in /brutar.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 16 MB
/
Stivă 4 MB
|
Id soluție | #48938788 | Utilizator | |
Fișier | brutar.cpp | Dimensiune | 3.32 KB |
Data încărcării | 09 Februarie 2024, 21:55 | Scor / rezultat | 90 puncte |
brutar.cpp: In function 'int main()': brutar.cpp:100:22: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized] if(Do(x - 1,y) && dp[x - 1][y] + 1 == dp[x][y]){ ^ brutar.cpp:100:38: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized] if(Do(x - 1,y) && dp[x - 1][y] + 1 == dp[x][y]){ ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | Corect! | 10 | 10 | ||
1 | 0 secunde | Corect! | 10 | 10 | ||
2 | 0.004 secunde | Corect! | 10 | 10 | ||
3 | 0.02 secunde | Corect! | 10 | 10 | ||
4 | 0.04 secunde | Corect! | 10 | 10 | ||
5 | 0.076 secunde | Corect! | 10 | 10 | ||
6 | 0.072 secunde | Corect! | 10 | 10 | ||
7 | 0.096 secunde | Corect! | 10 | 10 | ||
8 | Depășit | Limita de timp depășită | 10 | 0 | ||
9 | 0.072 secunde | Corect! | 10 | 10 | ||
Punctaj total | 90 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Brutar 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ă.