不懂就问为啥E看了好久没看出问题来

#include "iostream"
#define ll long long


int main(){
    int t;
    scanf("%d",&t);
    while (t--){
        ll a[100005];
        ll w[100005];
        int n;
        int pos;
        ll ans = 0x3f3f3f3f3f3f3f3f;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%lld",&a[i]);
            if(!a[i]){
                pos=i;
            }
        }
        if(n==1){
            printf("No Solution\n");
        }
        //left
        for(int i=pos-1;i>=1;i--){
            if(i!=pos-1){
                w[i] = std::max(w[i+1]-a[i],a[i]+1);
            } else{
                w[i] = a[i]+1;
            }
        }
        //right
        for(int i= pos+1;i<=n;i++){
            if(i!=pos+1){
                w[i] = std::max(w[i-1]-a[i],a[i]+1);
            } else{
                w[i]=a[i]+1;
            }
        }
        for(int i=1;i<=n;i++){
            if(i==pos){
                continue;
            } else{
                ans = std::min(ans,w[i]);
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}

就是这样,看了眼其实应该和题解里写的几乎一样,但是为什么哇了捏QAQ

全部评论

相关推荐

02-08 20:56
已编辑
南京工业大学 Java
在等offer的比尔很洒脱:我也是在实习,项目先不说,感觉有点点小熟悉,但是我有点疑问,这第一个实习,公司真的让实习生去部署搭建和引入mq之类的吗,是不是有点过于信任了,我实习过的两个公司都是人家正式早搭好了,根本摸不到部署搭建的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务