xxxalq 2023-07-13 10:55 采纳率: 33.3%
浏览 17

样例过了,全WA求帮助

img

img

#include<iostream>
using namespace std;
int T,n,a[200010],b[200010];
bool f(int x){
    for(int i=3;i<=n;i++){
        if(a[i]<x){
            return false;
        }
        int d=min(b[i],a[i]-x)/3;
        a[i]-=3*d;
        a[i-1]+=d;
        a[i-2]+=2*d;
        if(a[i]<x){
            return false;
        }
    }
    return true;
}
int main(){
    cin>>T;
    while(T--){
        cin>>n;
        int maxx=0;
        for(int i=1;i<=n;i++){
            cin>>a[i];
            b[i]=a[i];
            maxx=max(maxx,a[i]);
        }
        int l=0,r=maxx*2,mid;
        while(l<r){
            mid=(l+r+1)/2;
            if(f(mid)){
                l=mid;
            }else{
                r=mid-1;
            }
        }
        cout<<l<<endl;
    }
    return 0;
}


  • 写回答

2条回答 默认 最新

  • 想要AC的dly 2023-07-13 11:58
    关注

    你可以大概讲一下你的想法吗

    评论

报告相同问题?

问题事件

  • 创建了问题 7月13日