#1998
NASA plănuiește o nouă misiune Rover pe Marte în anul 2020. Principalul obiectiv al acestei misiuni este de a determina, cu ajutorul unui nou Rover, dacă a existat în trecut viață pe Marte. Până când va fi lansată misiunea, Roverul este supus la tot felul de teste în laboratoarele NASA. Într-unul din teste, Roverul trebuie să parcurgă o suprafață de forma unui caroiaj cu N
linii și N
coloane. Acesta pornește din zona de coordonate (1,1)
și trebuie să ajungă în zona de coordonate (N,N)
, la fiecare pas putându-se deplasa din zona în care se află într-una din zonele învecinate la nord, sud, est sau vest. Pentru fiecare zonă de coordonate (i,j)
se cunoaște A[i,j]
, stabilitatea terenului din acea zonă. Știind că Roverul are o greutate G
, o zonă cu stabilitatea terenului cel puțin egală cu G
se consideră o zonă sigură pentru deplasarea Roverului, iar o zonă cu stabilitatea terenului mai mică decât G
se consideră o zonă periculoasă pentru Rover.
1. Determinați numărul minim posibil de zone periculoase pe care le traversează Roverul pentru a ajunge din zona (1,1)
în zona (N,N)
.
2. Determinați greutatea maximă pe care o poate avea un Rover care să ajungă din zona (1,1)
în zona (N,N)
, fără a traversa nicio zonă periculoasă pentru el.
OJI 2017, Clasa a X-a
Problema | Rover | Operații I/O |
![]() rover.in /rover.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 32 MB
|
Id soluție | #57099873 | Utilizator | |
Fișier | rover.cpp | Dimensiune | 2.81 KB |
Data încărcării | 16 Martie 2025, 15:08 | Scor / rezultat | Eroare de compilare |
rover.cpp:19:0: warning: "NMAX" redefined [enabled by default] #define NMAX 200 ^ rover.cpp:2:0: note: this is the location of the previous definition #define NMAX 550 ^ rover.cpp:22:17: error: conflicting declaration 'int a [200][200]' int a[NMAX][NMAX],ver[NMAX][NMAX],dist[NMAX][NMAX],lee1[NMAX][NMAX]; ^ rover.cpp:7:5: error: 'a' has a previous declaration as 'int a [550][550]' int a[NMAX][NMAX],lee1[NMAX][NMAX]; ^ rover.cpp:22:67: error: conflicting declaration 'int lee1 [200][200]' int a[NMAX][NMAX],ver[NMAX][NMAX],dist[NMAX][NMAX],lee1[NMAX][NMAX]; ^ rover.cpp:7:19: error: 'lee1' has a previous declaration as 'int lee1 [550][550]' int a[NMAX][NMAX],lee1[NMAX][NMAX]; ^ rover.cpp:23:8: error: redefinition of 'int dx []' int dx[]={-1,1,0,0}; ^ rover.cpp:8:5: error: 'int dx [4]' previously defined here int dx[]={-1,1,0,0}; ^ rover.cpp:24:8: error: redefinition of 'int dy []' int dy[]={0,0,-1,1}; ^ rover.cpp:9:5: error: 'int dy [4]' previously defined here int dy[]={0,0,-1,1}; ^ rover.cpp:25:5: error: redefinition of 'int n' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:5: error: 'int n' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:7: error: redefinition of 'int m' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:7: error: 'int m' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:9: error: redefinition of 'int is' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:9: error: 'int is' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:12: error: redefinition of 'int js' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:12: error: 'int js' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:15: error: redefinition of 'int ifin' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:15: error: 'int ifin' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:20: error: redefinition of 'int jfin' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:20: error: 'int jfin' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:25: error: redefinition of 'int x' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:25: error: 'int x' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:27: error: redefinition of 'int y' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:27: error: 'int y' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:29: error: redefinition of 'int curr' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:29: error: 'int curr' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:34: error: redefinition of 'int inc' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:34: error: 'int inc' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:38: error: redefinition of 'int cerinta' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:38: error: 'int cerinta' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:25:46: error: redefinition of 'int cost' int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:10:46: error: 'int cost' previously declared here int n,m,is,js,ifin,jfin,x,y,curr,inc,cerinta,cost; ^ rover.cpp:26:8: error: redefinition of 'struct coada' struct coada {int lin, col;}; ^ rover.cpp:11:8: error: previous definition of 'struct coada' struct coada {int lin, col;}q[NMAX*NMAX]; ^ rover.cpp:27:13: error: conflicting declaration 'std::queue<coada> q' queue<coada>q; ^ rover.cpp:11:29: error: 'q' has a previous declaration as 'coada q [302500]' struct coada {int lin, col;}q[NMAX*NMAX]; ^ rover.cpp: In function 'bool inmat(int, int)': rover.cpp:29:6: error: redefinition of 'bool inmat(int, int)' bool inmat (int i, int j) ^ rover.cpp:13:6: error: 'bool inmat(int, int)' previously defined here bool inmat (int i, int j) ^ rover.cpp: In function 'void lee()': rover.cpp:39:7: error: request for member 'push' in 'q', which is of non-class type 'coada [302500]' q.push({is,js}); ^ rover.cpp:42:14: error: request for member 'empty' in 'q', which is of non-class type 'coada [302500]' while (q.empty()==0) ^ rover.cpp:44:17: error: request for member 'front' in 'q', which is of non-class type 'coada [302500]' int i=q.front().lin; ^ rover.cpp:45:17: error: request for member 'front' in 'q', which is of non-class type 'coada [302500]' int j=q.front().col; ^ rover.cpp:46:11: error: request for member 'pop' in 'q', which is of non-class type 'coada [302500]' q.pop(); ^ rover.cpp:57:19: error: request for member 'push' in 'q', which is of non-class type 'coada [302500]' q.push({i9,j9}); ^ rover.cpp: In function 'int main()': rover.cpp:65:5: error: reference to 'cin' is ambiguous cin>>cerinta; ^ rover.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin ("rover.in"); ^ In file included from rover.cpp:17:0: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ rover.cpp:66:5: error: reference to 'cin' is ambiguous cin>>n>>m; ^ rover.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin ("rover.in"); ^ In file included from rover.cpp:17:0: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ rover.cpp:69:13: error: reference to 'cin' is ambiguous cin>>a[i][j],lee1[i][j]=1e9; ^ rover.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin ("rover.in"); ^ In file included from rover.cpp:17:0: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ rover.cpp:84:5: error: reference to 'cout' is ambiguous cout<<lee1[n][n]; ^ rover.cpp:5:10: note: candidates are: std::ofstream cout ofstream cout ("rover.out"); ^ In file included from rover.cpp:17:0: /usr/include/c++/4.8/iostream:61:18: note: std::ostream std::cout extern ostream cout; /// Linked to standard output ^ rover.cpp: In function 'void lee()': rover.cpp:88:6: error: redefinition of 'void lee()' void lee () ^ rover.cpp:34:6: error: 'void lee()' previously defined here void lee () ^ rover.cpp: In function 'int main()': rover.cpp:117:5: error: redefinition of 'int main()' int main() ^ rover.cpp:63:5: error: 'int main()' previously defined here int main() ^ rover.cpp:119:5: error: reference to 'cin' is ambiguous cin>>cerinta; ^ rover.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin ("rover.in"); ^ In file included from rover.cpp:17:0: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ rover.cpp:120:5: error: reference to 'cin' is ambiguous cin>>n>>m; ^ rover.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin ("rover.in"); ^ In file included from rover.cpp:17:0: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ rover.cpp:123:13: error: reference to 'cin' is ambiguous cin>>a[i][j],lee1[i][j]=1e9; ^ rover.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin ("rover.in"); ^ In file included from rover.cpp:17:0: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ rover.cpp:137:5: error: reference to 'cout' is ambiguous cout<<lee1[n][n]; ^ rover.cpp:5:10: note: candidates are: std::ofstream cout ofstream cout ("rover.out"); ^ In file included from rover.cpp:17:0: /usr/include/c++/4.8/iostream:61:18: note: std::ostream std::cout extern ostream cout; /// Linked to standard output ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Rover 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ă.