Cod sursa(job #1064494)

Utilizator mariacMaria Constantin mariac Data 21 decembrie 2013 22:41:51
Problema Farfurii Scor 40
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.7 kb
#include <fstream>

using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long N, K;
int main()
{
    long long inv = 0;
    fin >> N >> K;

    while( inv / 2 * (inv + 1) < K) inv++;
    if(inv / 2 * (inv + 1) == K)
    {
        for(int i = 1; i < N - inv; i++)
            fout<<i <<" ";
        for(int i = N; i >= N - inv; i--)
            fout<<i<<" ";
    }
    else {
            for(int i = 1; i < N - inv; i++)
                fout<<i <<" ";
            int care = K % (inv / 2 *(inv - 1)) + N - inv ;
            fout<<care<<" ";
            for(int i = N; i >= N - inv; i--)
                if(i != care)fout<<i<<" ";
    }

    return 0;
}