题意
给定一个一列的棋盘,1
代表可以走,0
代表不能走,你只能跳一次,越过一部分棋盘,其余情况只能向右移一格,求跳了几格(开头结尾都是 1
,没有给出)。
思路
注意到:只能跳一次,所以枚举 0
前面的 1
即可。这点很重要!很多人挂在这儿的!
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int ans1=-1,ans2=-1,a[n+1];
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++) if(!a[i]){ans1=i-1;break;}
for(int i=n-1;i>=0;i--) if(!a[i]){ans2=i+1;break;}
cout<<ans2-ans1<<endl;
}
}