CF1649A Solution

  1. 1. Solution

Solution

只能跳一次,那么说明我们只可能通过一次大跳来跳过所有含水格子。大跳的代价与距离成正比,所以大跳的距离越小越好。

那么,大跳就从最左边的水格子前起跳,跳到最右边的水格子后即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<bits/stdc++.h>
using namespace std;

int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int k,ans=n+1,ans2=0;
for(int i=1;i<=n;i++)
{
cin>>k;
if(k==0) {ans=ans==n+1? i-1:ans;ans2=i+1;}
}
ans2=n-ans2;
if(ans==n+1) cout<<0<<endl;
else cout<<(n-ans-ans2)<<endl;
}
return 0;
}