Cod sursa(job #1980541)

Utilizator Andrei2000Andrei Mihailescu Andrei2000 Data 13 mai 2017 12:39:17
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin ("farfurii.in");
ofstream fout ("farfurii.out");

int main()
{
    long long n,x,k;
    fin>>n>>k;
    x=ceil((1+sqrt(1+8*(double)k))/2);
    if(x*(x-1)/2==k){
        for(int i=1;i<=n-x;++i)
            fout<<i<<' ';
        for(int i=n;i>=n-x+1;--i)
            fout<<i<<' ';
        fout<<'\n';
    }
    else{
        for(int i=1;i<=n-x;++i)
            fout<<i<<' ';
        fout<<n-x*(x-1)/2+k<<' ';
        for(int i=n;i>n-x*(x-1)/2+k;--i)
            fout<<i<<' ';
        for(int i=n-x*(x-1)/2+k-1;i>=n-x+1;--i)
            fout<<i<<' ';
        fout<<'\n';
    }
    return 0;
}