Cod sursa(job #1507393)

Utilizator gedicaAlpaca Gedit gedica Data 21 octombrie 2015 17:26:08
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

using namespace std;

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

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

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

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

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

        for( int i= 1; i<N-Sol; ++i )
        {
            out << i << ' ';
        }

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

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

    return 0;
}