Cod sursa(job #2570811)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 4 martie 2020 19:29:51
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <iostream>
#include <bitset>
using namespace std;

ifstream fin("farfurii.in");
ofstream fout("farfurii.out");

long long sol[100001],n,k,i,j,l;
bitset <100001> f;

int main(){
    fin>>n>>k;

    i=1;
    while(i*(i+1)/2<=k)
        i++;

    k-=i*(i-1)/2;

    if(k){
        l=n-i-1;
    }else{
        l=n-i;
    }

    for(i=1;i<=l;i++)
        sol[i]=i,f[i]=1;

    if(k){
        sol[l+1]=l+k+1;
        f[l+k+1]=1;
        l++;
    }
    l++;

    for(i=n;l<=n;l++,i--){
        if(f[i]){
            l--;
            continue;
        }

        sol[l]=i;
    }

    for(i=1;i<=n;i++)
        fout<<sol[i]<<" ";
    cout<<n;

    return 0;
}