Cod sursa(job #1067134)

Utilizator auRSTARHreapca Aurelian auRSTAR Data 26 decembrie 2013 13:48:18
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.67 kb
#include<cstdio>
#include<bitset>
using namespace std;
long long n,k,i,cnt,res;
bitset<101000>b;
int main()
{
    freopen("farfurii.in","r",stdin);
    freopen("farfurii.out","w",stdout);
    scanf("%lld%lld",&n,&k);
    if(k==n*(n-1)/2){for(i=1;i<=n;i++)printf("%lld ",n-i+1);return 0;}
    if(!k){for(i=1;i<=n;i++)printf("%lld ",i);return 0;}
    cnt=1;
    for(i=1;i<n;i++)
    {
        res=(n-i)*(n-i-1)/2;
        if(res>k){printf("%lld ",i);continue;}
        break;
    }
    cnt=i+k-res;
    b[cnt]=1;
    printf("%lld ",cnt);
    cnt=n;
    for(++i;i<=n;i++,cnt--)
    {
        while(b[cnt])cnt--;
        printf("%lld ",cnt);
    }
    return 0;
}