//--------------------------------------------------------------------------- #include #include //--------------------------------------------------------------------------- /* int GetRandom(int R,float P) { float Ran = ((float)rand())/((float)RAND_MAX); if( Ran < P ) { return 0; } return random(R) + 1; } void GeneraAleatorio(int Ren,int Col) { FILE *Input = fopen("input.txt","w+t"); int i,j; fprintf(Input,"%d %d\n",Ren,Col); for(i = 0; i < Ren; i++) { for(j = 0; j < Col-1; j++) { fprintf(Input,"%d ",GetRandom(100,0.6)); } fprintf(Input,"%d\n",GetRandom(100,0.6)); } fclose(Input); } void GeneraSecuencial(int Ren,int Col) { FILE *Input = fopen("input.txt","w+t"); int i,j; fprintf(Input,"%d %d\n",Ren,Col); for(i = 0; i < Ren; i++) { for(j = 0; j < Col-1; j++) { fprintf(Input,"%d ",i*Ren+j); } fprintf(Input,"%d\n",i*Ren+Col-1); } fclose(Input); } */ int Resuelve(int **Matriz,int Ren,int Col) { int i,j; //FILE *Output = fopen("output.txt","w+t"); for(i = 1; i < Ren; i++) { Matriz[i][0] += Matriz[i-1][0]; } for(j = 1; j < Col; j++) { Matriz[0][j] += Matriz[0][j-1]; for(i = 1; i < Ren; i++) { if( Matriz[i-1][j] < Matriz[i][j-1] ) { Matriz[i][j] += Matriz[i][j-1]; } else { Matriz[i][j] += Matriz[i-1][j]; } } } /* for(i = 0; i < Ren; i++) { for(j = 0; j < Col; j++) { fprintf(Output,"%d ",Matriz[i][j]); } fprintf(Output,"\n"); } fclose(Output); */ return Matriz[Ren-1][Col-1]; } int main() { int **Matriz,i,j,Ren,Col; FILE *Input = fopen("Input.txt","r+t"); fscanf(Input,"%d %d",&Ren,&Col); Matriz = new int*[Ren]; for(i = 0; i < Ren; i++) { Matriz[i] = new int[Col]; for(j = 0; j < Col; j++) { fscanf(Input,"%d",&Matriz[i][j]); } } fclose(Input); FILE *Output = fopen("Output.txt","w+t"); fprintf(Output,"%d",Resuelve(Matriz,Ren,Col)); fclose(Output); for(i = 0; i < Ren; i++) { delete[] Matriz[i]; } delete[] Matriz; /* randomize(); GeneraSecuencial(10,10); */ return 0; } //---------------------------------------------------------------------------