yuwj  

已经很久没更新博客了,但是

史诗性的一刻,第300题,不看一点题解,全靠自己AC!!!! 1700!!!
CF290C(来自羊村每日一题)

void solve(){
    cin>>n>>m; vector<ll> num(n+1);
    for(int i=1;i<=n;++i)cin>>num[i];
    ll mn = *min_element(num.begin()+1,num.end());
    for(int i=1;i<=n;++i) num[i] -= mn;
    vector<int> dis(2);
    for(int i=m;i<=n;++i) if(num[i]==0) {dis[1] = i;break;}
    for(int i=m;i>=1;--i) if(num[i]==0) {dis[0] = i;break;}
    sort(dis.begin(),dis.end(),[](int x,int y){return abs(x-m)<abs(y-m);});
    ll now = n*mn,cur = m;
    while(1){
        if(num[cur] == 0) {num[cur] = now;break;}
        num[cur]--,now++;
        cur = (cur-1+n)%n;
        if(cur == 0) cur = n;
    }
    //cout<<mn<<' '<<dis[0]<<' '<< now <<'\n';
    for(int i=1;i<=n;++i)cout<<num[i]<<" \n"[i==n];
}

图片

posted on 2025-07-09 15:56  xiaowang524  阅读(9)  评论(0)    收藏  举报