[未理解][CF949D]Curfew:贪心

分析:

还是不太理解贪心的正确性。

代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
typedef long long LL;

const int MAXN=100005;
int n,d;
LL b,a[MAXN],sum[MAXN];

int main(){
    scanf("%d%d%lld",&n,&d,&b);
    for(int i=1;i<=n;i++){
        scanf("%lld",&a[i]);
        sum[i]=sum[i-1]+a[i];
    }
    int l=1,r=n,ans1=0,ans2=0;
    while(l<r){
        if(sum[std::min(l+1ll*d*l,1ll*n)]-(l-1-ans1)*b<b) ans1++;
        if(sum[n]-sum[std::max(r-1ll*d*l-1,1ll*0)]-(n-r-ans2)*b<b) ans2++;
        l++;r--;
    }
    printf("%d\n",std::max(ans1,ans2));
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/ErkkiErkko/p/9690306.html