Cod sursa(job #1401724)

Utilizator DysKodeTurturica Razvan DysKode Data 26 martie 2015 08:51:49
Problema Farfurii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;

int v[100010],posSchimb,y,i,j,n,k,nr,x;
long long int d;

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

int main()
{
    fin>>n>>k;
    for(i=1 ; d<k ; ++i )
        d += i;

    posSchimb = i;

    ++j;
    for( i=1 ; i<=n-posSchimb ; ++i , ++j )
        v[ j ] = i;

    y = i;

    for( i = n  ; i >= y ; --i , ++j )
        v[ j ] = i;

    posSchimb = n - posSchimb + 1;

    if( d != k )
    {
        nr = d - k;

        x = v[ posSchimb ];

        swap( v[ posSchimb ] , v[ posSchimb + nr ] );

        for(i=posSchimb + nr ; i>posSchimb ; --i)
            v[ i ] = v[ i - 1 ];

        v[posSchimb + 1] = x;

    }

    for(i=1 ; i<=n ; ++i)
        fout<<v[i]<<' ';


return 0;
}