首页 > 其他 > 详细

Codeforces Round #598 (Div. 3) C. Platforms Jumping

时间:2019-11-05 14:17:10      阅读:284      评论:0      收藏:0      [点我收藏+]
#pragma GCC optimize(3)
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const int N=2e3+5;
const int mod=998244353;
int n,m,d;
int a[N],c[N];
int main()
{
    scanf("%d%d%d",&n,&m,&d);
    int sum=0;
    for(int i=1; i<=m; i++)
        scanf("%d",&a[i]),sum+=a[i];
    int x=n-sum;
    if(ceil(x*1.0/(d-1))>m+1)printf("NO\n");
    else
    {
        int k=ceil(x*1.0/(m+1))+1;
        int t;
        int l=0,p=1;
        while(l<n+1)
        {
            if(p>m)break;
            if(x==0)t=1;
            else t=min(x+1,k);
            x-=(t-1);
            for(int i=l+t;i<l+t+a[p];i++)
                c[i]=p;
            l=l+t+a[p]-1;
            p++;
        }
        cout<<"YES"<<endl;
        for(int i=1;i<n;i++)
            printf("%d ",c[i]);
        printf("%d\n",c[n]);
    }
    return 0;
}

Codeforces Round #598 (Div. 3) C. Platforms Jumping

原文:https://www.cnblogs.com/liuquanxu/p/11797864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!