Cod sursa(job #2780785)

Utilizator CatalinPangaleanuCatalin Pangaleanu CatalinPangaleanu Data 7 octombrie 2021 20:08:57
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

//#pragma GCC optimize("Ofast")

using namespace std;

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

long long ans[100001];

long long squareRoot(long long x)
{   long long l, r, mid;
    l=0, r=100001;
    while (l+1<r)
    {   mid=(l+r)/2;
        if (mid*(mid-1)/2>=x)
            --r;
        else
            ++l;
    }
    return r;
}

int main()
{   long long n, k, level, i, j, index, temp;
    fin>>n>>k;
    fin.close();
    level=squareRoot(k);
    for (i=1;i<=n-level;++i)
        ans[i]=i;
    for (j=n;j>n-level;--j, ++i)
        ans[j]=i;
    index=n-level+1+level*(level-1)/2-k;
    temp=ans[index];
    for (i=index;i>n-level+1;--i)
        ans[i]=ans[i-1];
    ans[n-level+1]=temp;
    for (i=1;i<=n;++i)
        fout<<ans[i]<<' ';
    fout.close();

    return 0;
}