Cod sursa(job #1344408)

Utilizator gedicaAlpaca Gedit gedica Data 16 februarie 2015 18:18:57
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int main()
{
    long long N, K;
    in >> N >> K;

    // caz
    if( !K )
    {
        for( long long i= 1; i<=N; ++i )
        {
            out << i << ' ';
        }
        return 0;
    }
    // caz

    long long M;

    for( M= 2; M <= N && M * ( M-1 ) < 2*K; )
    {
        ++M;
    }

    if( M * M - 1== 2*K )
    {
        for( long long i= 1; i<=N-M; ++i )
        {
            out << i << ' ';
        }
        for( long long i= N; i > N-M; --i )
        {
            out << i << ' ';
        }
    }
    else
    {
        --M;

        for( long long  i= 1; i<N-M; ++i )
        {
            out << i << ' ';
        }

        out << N - ( M+1 ) * M/2 + K << ' ';

        for( long long i= N; i>=N-M; --i )
        {
            if( i!= N-( M+1 ) * M/2 + K )
                out << i << ' ';
        }
    }

    return 0;
}