通俗题解||XY - 最大跳跃距离
2024-08-19 20:54:43
发布于:广东
4阅读
0回复
0点赞
边输入边判断是否有炸弹,遇到有炸弹区将该炸弹区最左侧的地方标记,再遇到无炸弹点就判断跳跃距离,最后比较距离长短。
特判:若所有点均没有炸弹则输出1.
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[1010]={};
int l,ans=0;
bool flag=0,f=0;//flag:开关工具 f:特判指示器
for(int i=0;i<n;i++){
if(i>0)cin>>a[i];
if(a[i]==1){//遇到一个雷取消特判开关
f=1;
}
if(a[i]==1&&flag==0){//上个点无雷,这个点有雷
l=i;//标记位置
flag=1;//表示有雷
}
else if(a[i]==0&&flag==1){//上个点有雷,这个点无雷
ans=max(ans,i-l+1);//比较长短
flag=0;//表示无雷
}
}
if(f==0){//所有点均无雷特判1
cout<<1;
return 0;
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个