为了能到远方,脚下的每一步都不能少.|
2024-05-17 22:42阅读: 11评论: 0推荐: 0

[题解] P9517 drink

这道题考场上用的查找做的。

先用一个结构体分别表示 first last,然后进行查找即可,两个 for 循环分别计算出 firstlast,最后计算它们的差值。(注意,计算差值时要加 1)

然后你就会发现一个问题:只有 90 分。

所以我们来思考一下哪里出现了问题。

你会发现:如果全都是 0 怎么办呢?

所以还要记录是不是全都是 0,如果是就输出 0 即可得到满分。

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
struct cntt
{
int first, last;
}cnt;
int n;
int a[MAXN];
int cnttt;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
if (a[i] == 0)
{
cnttt++;
}
}
if (cnttt == n)
{
printf("0");
return 0;
}
for (int i = 1; i <= n; i++)
{
if (a[i] == 1)
{
cnt.first = i;
break;
}
}
for (int i = 1; i <= n; i++)
{
if(a[i] == 1)
{
cnt.last = i;
}
}
printf("%d", cnt.last - cnt.first + 1);
return 0;
}

本文作者:cq_irritater

本文链接:https://www.cnblogs.com/cq-irritater/p/18198835/solution-luogu-p9517

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   cq_irritater  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起