Cod sursa(job #68293)

Utilizator vlad_popaVlad Popa vlad_popa Data 27 iunie 2007 14:39:00
Problema Farfurii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>

#define FIN "farfurii.in"
#define FOUT "farfurii.out"

int N, K;

void read ()
{
    scanf ("%d %d\n", &N, &K);
}

void solve ()
{
    int i, verif = 0;

    for (i = 1; i * (i - 1) / 2 < K; ++ i);
    
    if (i * (i - 1) / 2 == K)
        verif = 1;

    for (int j = 1; j <= N - i; ++ j)
        if (verif && j == N - (i * (i - 1) / 2 - K));
        else
            printf ("%d ", j);

    if (verif)
    {
        for (int j = N; j >= N - i + 1; -- j)
            printf ("%d ", j);
    }
    else
    {
        printf ("%d ", N - (i * (i - 1) / 2 - K));
        for (int j = N; j > N - i; -- j)
            if (j != N - (i * (i - 1) / 2 - K))
                printf ("%d ", j);
    }
    printf ("\n");
}

int
 main ()
{
    freopen (FIN, "rt", stdin);
    freopen (FOUT, "wt", stdout);

    read ();
    solve ();

    return 0;
}