#include <cstdio> #include <iostream> //SB题目 你能从1楼一口气爬到15楼???? const int INF=0xffffff; using namespace std; int mmap[1000000][1000000]={0}; int max(int t,int l,int r,int b){ int max=t; if(max<l) max=l; if(max<r) max=r; if(max<b) max=b; return max; } int digui(int i,int j,int curent){ int t=0,l=0,r=0,b=0; int top,left,right,bottom; top=mmap[i-1][j]; left=mmap[i][j-1]; right=mmap[i][j+1]; bottom=mmap[i+1][j]; if(top>curent){ t=digui(i-1,j,top)+1; } if(left>curent){ l= digui(i,j-1,left)+1; } if(right>curent){ r= digui(i,j+1,right)+1; } if(bottom>curent){ b=digui(i+1,j,bottom)+1; } return max(t,l,r,b); } int main(){ int n,m; cin>>n>>m; int mins=INF; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int high; cin>>high; mmap[i][j]=high; } } int maxs=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int res=digui(i,j,mmap[i][j]); if(maxs<res) maxs=res; } } cout<<maxs<<endl; return 0; } /* Main.cc: In function 'int main()': Main.cc:49:6: warning: unused variable 'mins' [-Wunused-variable] int mins=INF; ^~~~ /usr/bin/ld: failed to convert GOTPCREL relocation; relink with --no-relax collect2: error: ld returned 1 exit status */ |
Double click to view unformatted code.