Cod sursa(job #2015846)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 27 august 2017 19:23:07
Problema Farfurii Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>
int v[100001],f[100001],rez[100001];
int main()
{
    int n,i,j,ct;
    long long k,z;
    freopen("farfurii.in","r",stdin);
    freopen("farfurii.out","w",stdout);
    scanf("%d%lld",&n,&k);
    for(i=1; i<=n; i++)
    {
        z=k-(long long)(n-i)*(n-i-1)/2+1;
        if(z<=1) v[i]=1;
        else v[i]=z,k-=z,k++;
    }
    for(i=1,j=n; i<=n && j>0; i++,j--)
    {
        if(v[j]==i) ;
        else f[v[j]]++,f[i]--;
        rez[i]=v[j];
    }
    ct=0;
    for(i=1; i<=n; i++)
    {
        ct+=f[i];
        rez[i]+=ct;
    }
    for(i=n; i>0; i--)
        printf("%d ",rez[i]);

    return 0;
}