Pagini recente » Cod sursa (job #1223001) | Cod sursa (job #586197) | Cod sursa (job #559474) | Cod sursa (job #2911867) | Cod sursa (job #3004959)
#include <bits/stdc++.h>
#define NMAX 1005
#define INF INT_MAX
using namespace std;
ifstream in("zoro.in");
ofstream out("zoro.out");
int n,m;
int a[NMAX][NMAX],l[NMAX],c[NMAX];
int d[NMAX][NMAX];
struct coord{
int lin;
int col;
}viz[NMAX*NMAX];
int nmax;
void citire()
{
in>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
in>>a[i][j];
viz[a[i][j]].lin=i;
viz[a[i][j]].col=j;
if(i==1&&j==1)
nmax=a[i][j];
}
}
void rezolvare()
{
l[1]=1;
c[1]=1;
d[1][1]=1;
for(int k=a[1][1]-1;k>=1;k--)
{
int lin=viz[k].lin;
int col=viz[k].col;
int nr=max(l[lin],c[col]);
if(nr>0)
{
d[lin][col]=nr+1;
l[lin]=max(l[lin],d[lin][col]);
c[col]=max(c[col],d[lin][col]);
}
}
out<<d[n][m];
}
int main()
{
citire();
rezolvare();
}