文章
2
粉丝
73
获赞
0
访问
733
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,k;
while(cin>>n>>m>>k)
{
int sum =0;
int x;
//记录需要被照亮的n米点
int a[n+1] ={0};
for(int i=0;i<m;i++)
{
cin>>x;
//标记被照亮的点为1
for (int j = max(1, x - k); j <= min(n, x + k); j++)
{
a[j] = 1;
}
}
int l=1;
while(l<=n)
{
//每次要初始化记录未被照亮的路的长度count
int count = 0;
//检查没被照亮的路即a[l]==0
while(l<=n&&a[l]==0)
{
l++;
count++;
}
//ceil(每段未被照亮的路的长度/(2*k+1)),要向上取整
sum += (count + 2 * k) / (2 * k + 1);
l++;
}
cout<<sum<<endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发