Detalii evaluare #21961997

Rezumat problemă

#3056 walle

Roboțelul WALL-E este captiv într-un labirint dreptunghiular de dimensiuni N x M. Analizând harta, WALL-E constată că are de-a face cu un labirint extrem de sofisticat. El reușește să identifice următoarele tipuri de celule:
  • W – celula unde, la început, se află WALL-E,
  • E – celula ‘EXIT’ care poate fi accesată de WALL-E și care îl poate teleporta pe acesta instantaneu în afara labirintului, într-un loc sigur,
  • . – celule libere, care pot fi accesate de WALL-E,
  • # – celule de tip zid, care NU pot fi accesate de WALL-E,
  • + – celule de tip ușă, care pot fi accesate de WALL-E, dar continuarea deplasării la o celulă vecină se poate face doar după o așteptare de exact T secunde,
  • P – celule de tip portal, care îl teleportează pe WALL-E instantaneu, la întâmplare, într-una dintre celelalte celule de tip portal. Dacă WALL-E accesează o celulă (x1, y1) de tip portal, atunci el va fi instantaneu teleportat la o altă celulă (x2,y2) de tip portal, iar mai departe el se va deplasa numai într-o celulă vecină cu (x2,y2) (nu poate sta pe loc)

Comportamentul haotic al portalurilor îl îngrijorează pe WALL-E, astfel că își propune să afle care este numărul minim de secunde în care, cu certitudine, el va putea părăsi labirintul. Dacă nu se poate determina cu certitudine acest lucru, sau dacă WALL-E nu poate părăsi labirintul, răspunsul va fi -1.

Detalii

Problema walle Operații I/O walle.in/walle.out
Limita timp 0.4 secunde Limita memorie Total: 128 MB / Stivă 8 MB
Id soluție #21961997 Utilizator Durla Paul (Paulinformaticianul)
Fișier walle.cpp Dimensiune 3.88 KB
Data încărcării 20 Martie 2020, 00:17 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

walle.cpp:13:18: error: 'stk exit' redeclared as different kind of symbol
 }st[MAXN*MAXN+1],exit,start,port[MAXN*MAXN];

                  ^
In file included from /usr/include/c++/4.8/cstdlib:72:0,
                 from /usr/include/c++/4.8/ext/string_conversions.h:41,
                 from /usr/include/c++/4.8/bits/basic_string.h:2815,
                 from /usr/include/c++/4.8/string:52,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from walle.cpp:1:
/usr/include/stdlib.h:543:13: error: previous declaration of 'void exit(int)'
 extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
             ^
walle.cpp: In function 'int main()':
walle.cpp:50:26: error: request for member 'x' in 'exit', which is of non-class type 'void(int)throw ()'
                     exit.x=i,exit.y=j;

                          ^
walle.cpp:50:35: error: request for member 'y' in 'exit', which is of non-class type 'void(int)throw ()'
                     exit.x=i,exit.y=j;

                                   ^
walle.cpp:84:21: error: request for member 'x' in 'exit', which is of non-class type 'void(int)throw ()'
     st[cont].x=exit.x,st[cont].y=exit.y;

                     ^
walle.cpp:84:39: error: request for member 'y' in 'exit', which is of non-class type 'void(int)throw ()'
     st[cont].x=exit.x,st[cont].y=exit.y;

                                       ^
walle.cpp:111:20: error: request for member 'x' in 'exit', which is of non-class type 'void(int)throw ()'
             e[exit.x][exit.y]=-1;

                    ^
walle.cpp:111:28: error: request for member 'y' in 'exit', which is of non-class type 'void(int)throw ()'
             e[exit.x][exit.y]=-1;

                            ^
walle.cpp:114:20: error: request for member 'x' in 'exit', which is of non-class type 'void(int)throw ()'
     int rez=w[exit.x][exit.y];

                    ^
walle.cpp:114:28: error: request for member 'y' in 'exit', which is of non-class type 'void(int)throw ()'
     int rez=w[exit.x][exit.y];

                            ^

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