Cod sursa(job #2456391)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 14 septembrie 2019 11:39:31
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

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

const int NMAX = 100005;

int N;
unsigned long long K;
int a[NMAX];

int main()
{
    fin >> N >> K;

    int p;

    for( int i = 1; i <= N; ++i )
      if( 1ULL * i * ( i - 1 ) / 2 >= K )
      {
        for( int j = 1; j <= N - i; ++j )
          a[j] = j;

        K = 1LL * i * ( i - 1 ) / 2 - K;
        p = N - i + 1;

        break;
      }

    for( int i = p; i <= N; ++i )
      a[i] = N - ( i - p );

    if( K > 0 )
    {
    int aux = a[p + K];

    for( int i = p + K; i > p; --i )
      a[i] = a[i - 1];

    a[p] = aux;
    }

    for( int i = 1; i <= N; ++i )
      fout << a[i] << ' ';

    return 0;
}