Pagini recente » Cod sursa (job #1673221) | Cod sursa (job #150393) | Cod sursa (job #35199) | Cod sursa (job #904999) | Cod sursa (job #1378987)
#include <iostream>
#include <fstream>
#include <queue>
#define NMAX 502
using namespace std;
ifstream f("traseu.in");
ofstream g("traseu.out");
int const dl[]={0,1};
int const dc[]={1,0};
int ve[NMAX][NMAX],i,j,m,n,z[NMAX][NMAX],ii,jj,k;
bool OK(int x, int y){
if(x < 1 || y < 1 || x > m || y > n)
return false;
return true;
}
void Lee(){
queue < pair < int, int > > coada;
coada.push(make_pair(1,1));
z[1][1]=ve[1][1];
while( !coada.empty()){
ii = coada.front().first;
jj = coada.front().second;
coada.pop();
for(k=0;k<2;k++){
i = ii + dl[k];
j = jj + dc[k];
if(OK(i,j) ){
if(z[i][j]!=0){
if( z[ii][jj]+ve[i][j]> z[i][j] )
z[i][j]=z[ii][jj]+ve[i][j];
}
else z[i][j]=z[ii][jj]+ve[i][j];
coada.push(make_pair(i,j));
}
}
}
}
int main(){
f>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
f>>ve[i][j];
Lee();
g<<z[m][n];
return 0;}