CF1649A Game题解
__vector__ · · 题解
题目大意:
有
你初始在第
如果路中遇到了有水的格子,那么你需要花费硬币跳过去。假设你现在在
问最少需要多少个硬币才能走到第
题目解法:
直接遍历一遍数组
注:
要注意特判没有一个格子有水的情况,这种情况输出 0 即可。
AC 代码:
#include <bits/stdc++.h>
using namespace std;
namespace Main
{
const int maxn=105;
int t;
int n;
int a[maxn];
void main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int ans=0;
int pos1=0,pos2=0;
bool flag=1,flag2=1;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(!a[i]&&flag)
{
flag=0;
pos1=i;
}
}
for(int i=n;i>=1;i--)
{
if(!a[i]&&flag2)
{
flag2=0;
pos2=i;
}
}
if(!pos1&&!pos2)
{
printf("0\n");
}
else printf("%d\n",(pos2-pos1+2));
}
}
}
int main()
{
Main::main();
return 0;
}