有人遇到同样的问题吗?
能分享一下解决方法吗/kk
#include <algorithm>
#include <cstdio>
#define _for(i_,a_,b_) for(int i_ = a_;i_ < b_;++i_)
#define _rep(i_,a_,b_) for(int i_ = a_;i_ <= b_;++i_)
typedef long long ll;
int light[10500],cnt;
int main(){
int n,r;
scanf("%d%d",&n,&r);
_rep(i,1,n)
scanf("%d",&light[i]);
_rep(i,1,n){
if(light[i] != 0)
continue;
for(int j = std::min(i + r - 1,n);j > i ;--j)
if(light[j] == 1){
for(int flatten = std::max(j-r+1,1);flatten<=std::min(j+r-1,n);++flatten)
if(light[flatten] != 1)light[flatten] = 2;
goto fucking_end;
}
for(int j = i - 1;j >= std::max(i - r + 1,1);--j)
if(light[j] == 1){
for(int flatten = std::max(j-r+1,1);flatten<=std::min(j+r-1,n);++flatten)
if(light[flatten] != 1)light[flatten] = 2;
goto fucking_end;
}
puts("-1");
return 0;
fucking_end:++cnt;
}
printf("%d",cnt);
return 0;
}
忽略那个f**king end