#include #define Fin "sudest.in" #define Fout "sudest.out" #define Nmax 100 using namespace std; int N; //numarul de linii int K; //numarul de comenzi int A[Nmax][Nmax]; //memoreaza cantitatea de produs int C[Nmax][Nmax]; //C[i][j]=cantitatea maxima de cartofi culeasa pe un traseu ce //porneste din (1,1) si se termina in (i,j), respectand conditiile problemei unsigned char P[Nmax][Nmax]; int Move[2*Nmax]; //memoreaza cele K comenzi ofstream g(Fout); void read_data() { int i,j; ifstream f(Fin); f>>N; for(i=0;i>A[i][j]; f>>K; for(i=1;i<=K;i++) f>>Move[i]; f.close(); } void init() { int i,j; for(i=0;iC[j+Move[i]][h]) {P[j+Move[i]][h]=i; C[j+Move[i]][h]=C[j][h]+A[j+Move[i]][h];} if (posibil(j,Move[i]+h)) if (C[j][h]+A[j][Move[i]+h]>C[j][Move[i]+h]) {P[j][Move[i]+h]=i; C[j][Move[i]+h]=C[j][h]+A[j][Move[i]+h];} } g<