Cod sursa(job #1701661)

Utilizator popabogdanPopa Bogdan Ioan popabogdan Data 13 mai 2016 19:49:39
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int n,k,i,l,kk;
ll ff;
int gasesc(ll k)
{
    k*=2;
    int f=sqrt(k)+1;
    while((ll)f*(f-1)>k)f--;
    return f;
}
int main()
{
    fin>>n>>ff;
    k=gasesc(ff);
    if((ll)k*(k-1)/2==ff)
    {
        for(i=1;i<=n-k;i++)fout<<i<<" ";
        for(i=n;i>n-k;i--)fout<<i<<" ";
        fout<<"\n";
        return 0;
    }
    ff-=(ll)k*(k-1)/2;
    l=ff;
    for(i=1;i<=n-k-1;i++)fout<<i<<" ";
    kk=i+l;
    fout<<kk<<" ";
    for(i=n;i>=n-k;i--)
        if(i!=kk)fout<<i<<" ";
    fout<<"\n";
    return 0;
}