Detalii evaluare #53281160

Rezumat problemă

#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:

  • Din căsuța curentă în cele adiacente ( Nord, Vest, Sud, Est )
  • Două mișcări speciale ce pot varia.

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).

Detalii

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 #53281160 Utilizator Comșa Kevin (kevin20080904)
Fișier brutar.cpp Dimensiune 3.35 KB
Data încărcării 23 Octombrie 2024, 11:44 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

brutar.cpp: In function 'int main()':
brutar.cpp:31:21: warning: array subscript has type 'char' [-Wchar-subscripts]
                 mp[c]=-1;

                     ^
brutar.cpp:31:22: error: incompatible types in assignment of 'int' to 'int [1003]'
                 mp[c]=-1;

                      ^
brutar.cpp:54:54: error: too few arguments to function 'bool ok(int, int)'
             if(mp[i+int(a2)-48][j+int(b2)-48]==0&&ok())

                                                      ^
brutar.cpp:15:6: note: declared here
 bool ok(int f1, int f2)

      ^
brutar.cpp:63:53: warning: the address of 'bool ok(int, int)' will always evaluate as 'true' [-Waddress]
             if(mp[i-(int(a2)-48)][j+int(b2)-48]==0&&ok)

                                                     ^
brutar.cpp:72:53: warning: the address of 'bool ok(int, int)' will always evaluate as 'true' [-Waddress]
             if(mp[i+int(a2)-48][j-(int(b2)-48)]==0&&ok)

                                                     ^
brutar.cpp:81:55: warning: the address of 'bool ok(int, int)' will always evaluate as 'true' [-Waddress]
             if(mp[i-(int(a2)-48)][j-(int(b2)-48)]==0&&ok)

                                                       ^
brutar.cpp:93:51: warning: the address of 'bool ok(int, int)' will always evaluate as 'true' [-Waddress]
             if(mp[i+int(x2)-48][j+int(y2)-48]==0&&ok)

                                                   ^
brutar.cpp:102:53: warning: the address of 'bool ok(int, int)' will always evaluate as 'true' [-Waddress]
             if(mp[i-(int(x2)-48)][j+int(y2)-48]==0&&ok)

                                                     ^
brutar.cpp:111:53: warning: the address of 'bool ok(int, int)' will always evaluate as 'true' [-Waddress]
             if(mp[i+int(x2)-48][j-(int(y2)-48)]==0&&ok)

                                                     ^
brutar.cpp:120:55: warning: the address of 'bool ok(int, int)' will always evaluate as 'true' [-Waddress]
             if(mp[i-(int(x2)-48)][j-(int(y2)-48)]==0&&ok)

                                                       ^
brutar.cpp:129:17: error: 'k' was not declared in this scope
             for(k=0; k<4; k++)

                 ^
brutar.cpp:131:17: error: 'i2' was not declared in this scope
                 i2=i+di[k];

                 ^
brutar.cpp:132:17: error: 'j2' was not declared in this scope
                 j2=j+dj[k];

                 ^
brutar.cpp:136:42: error: expected primary-expression before ';' token
                     mp[i2][j2]=mp[i][j]+!;

                                          ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Brutar face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.