Brandon鹏 @ 2018-07-24 20:14:08
60分WA求救
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m;
int a[101][101];
int book[101][101];
int ans[120][120];
struct node
{
int hang;
int lie;
int h;
int book;
}tu[10000+100];
bool cmp(node a,node b)
{
if(a.h<b.h)
{
return 1;
}
else
{
return 0;
}
}
int cnt;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
cnt++;
tu[cnt].hang=i;
tu[cnt].lie=j;
tu[cnt].h=a[i][j];
tu[cnt].book=0;
}
}
sort(tu+1,tu+1+cnt,cmp);
int maxn=0;
for(int i=1;i<=cnt;i++)
{
ans[tu[i].hang][tu[i].lie]=max(max(ans[tu[i].hang+1][tu[i].lie]+1,ans[tu[i].hang][tu[i].lie+1]+1),max(ans[tu[i].hang-1][tu[i].lie]+1,ans[tu[i].hang][tu[i].lie-1]+1));
if(maxn<ans[tu[i].hang][tu[i].lie])
{
maxn=ans[tu[i].hang][tu[i].lie];
}
}
printf("%d",maxn);
return 0;
}