解封日期 分数 300 作者 吴云鹏 单位 郑州大学 小明所在的城市发生了疫情,实行静态化管理,小明也被关在家里,不能去上学了。 根据当地政策,连续N天没有新增病例,就可以解封。小明知道过去M(M≤N)天的每天的新增病例数,他想知道理想情况下最早什么时候可以解封。
时间: 2024-02-27 12:59:04 浏览: 44
好的,根据你的描述,这是一道简单的模拟题目。我们可以定义一个变量count,表示已经连续多少天没有新增病例,然后遍历过去M天的新增病例数,如果某一天新增病例数为0,则将count加1,如果新增病例数不为0,则将count归零。当count达到N时,即已经连续N天没有新增病例,此时的日期就是最早可以解封的时间。
下面是具体的实现代码:
```
#include <iostream>
using namespace std;
int main()
{
int n, m;
cin >> n >> m; // 输入连续多少天没有新增病例和过去多少天的新增病例数
int count = 0; // 连续没有新增病例的天数
int date; // 最早可以解封的日期
for (int i = 1; i <= m; i++)
{
int num;
cin >> num; // 输入第i天的新增病例数
if (num == 0)
{
count++; // 如果新增病例数为0,count加1
if (count == n)
{
date = i; // 如果已经连续n天没有新增病例,记录当前日期
break; // 直接跳出循环
}
}
else
{
count = 0; // 如果新增病例数不为0,count归零
}
}
if (count == n) // 如果已经连续n天没有新增病例
{
cout << date << endl; // 输出最早可以解封的日期
}
else
{
cout << "-1" << endl; // 否则输出-1表示无法解封
}
return 0;
}
```
希望能够帮到你!