Cod sursa(job #1868694)

Utilizator ArambasaVlad Arambasa Arambasa Data 5 februarie 2017 11:03:11
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 1.06 kb
#include <fstream>

using namespace std;
ifstream in ("farfurii.in");
ofstream out ("farfurii.out");
unsigned long long n,k,st,smax,indice,fr[100005];
void Read()
{
    in>>n>>k;
}
void Solve()
{
    st=1;
    for (int i=1;i<=n;i++)
    {
        smax=(n-i)*(n-i-1)/2;
        if (smax>=k)
        {
            while(1==1)
            {
                if (!fr[st])
                {
                    fr[st]++;
                    out<<st<<' ';
                    break;
                }
                st++;
            }
        }
        else
        {
            indice=k-smax;
            int j=st;
            while (indice)
            {
                if (!fr[j])
                {
                    indice--;
                }
                j++;
            }
            fr[j]++;
            out<<j<<' ';
            i=n+1;
        }
    }
}
void Write()
{
    for (int i=n;i>=1;i--)
        if (!fr[i])
            out<<i<<' ';
}
int main()
{
    Read();
    Solve();
    Write();
    return 0;
}