📄 davidpeterman_c.cpp
字号:
#include<fstream.h>
int maxr=0,maxc=0,length=0,l=0;
void max(int *num,int r=5,int c=5){
int m=0;
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
if(num[i*c+j]>=m){
maxr=i;
maxc=j;
m=num[i*c+j];
}
}
}
}
void way(int x,int y,int r,int c,int *num){
l++;
if(y-1>=0){//x,y-1
if(num[x*c+y]>=num[x*c+y-1]){
if(num[x*c+y-1]==1){
l++;
if(l>length)length=l;
l--;
}
else way(x,y-1,r,c,num);
}
}
if(y+1<c){//x,y+1
if(num[x*c+y]>=num[x*c+y+1]){
if(num[x*c+y+1]==1){
l++;
if(l>length)length=l;
l--;
}
else way(x,y+1,r,c,num);
}
}
if(x-1>=0){//x-1,y
if(num[x*c+y]>=num[(x-1)*c+y]){
if(num[(x-1)*c+y]==1){
l++;
if(l>length)length=l;
l--;
}
else way(x-1,y,r,c,num);
}
}
if(x+1<r){//x+1,y
if(num[x*c+y]>=num[(x+1)*c+y]){
if(num[(x+1)*c+y]==1){
l++;
if(l>length)length=l;
l--;
}
else way(x+1,y,r,c,num);
}
}
l--;
}
void main(){
ifstream jsin("ski.in");
int r=5,c=5;
jsin>>r;
jsin>>c;
int *num=new int[r*c];
ofstream jsout("ski.out");
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
jsin>>num[i*c+j];
}
}
max(num,r,c);
way(maxr,maxc,r,c,num);
jsout<<length;
jsin.close();
jsout.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -