codeforces B. Restoration of the Permutation

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
bool flag[1005];
int a[1005],b[1005];
int main()
{
    int n;
    int i,j,k;
    while(scanf("%d%d",&n,&k)==2)
    {

        for(i=1;i<=n;i++)
        {
            scanf("%d",&b[i]);
        }
        memset(flag,false,sizeof(flag));
        j=0;
        int t=0;
        while(t<n)
        {
            for(i=1;i<=n;i++)
            {
                if(b[i]==0&&!flag[i]) {flag[i]=true;break;}
            }
            a[j]=i;
            for(i=1;i<=n;i++)
            {
                if(a[j]>=i+k)
                    b[i]--;
            }
            j++;
            t++;
        }
        printf("%d",a[0]);
        for(i=1;i<n;i++)
            printf(" %d",a[i]);
        printf("\n");

    }

    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章