Cod sursa(job #2505746)

Utilizator hhhhhhhAndrei Boaca hhhhhhh Data 7 decembrie 2019 10:41:08
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long n,k,poz;
set<int>s;
int v[100001];
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        s.insert(i);
    bool found=0;
    for(int i=1;i<=n;i++)
    {
        if((n-i)*(n-i-1)/2>=k)
        {
            v[i]=*s.begin();
            s.erase(s.begin());
        }
        else
        {
            poz=i;
            auto it=s.begin();
            long long nr=(n-i)*(n-i-1)/2;
            while(nr<k)
            {
                nr++;
                it++;
            }
            v[i]=*it;
            s.erase(it);
            break;
        }
    }
    for(int i=poz+1;i<=n;i++)
    {
        auto it=s.end();
        it--;
        v[i]=*it;
        s.erase(it);
    }
    for(int i=1;i<=n;i++)
        fout<<v[i]<<" ";
    return 0;
}