Cod sursa(job #68295)

Utilizator vlad_popaVlad Popa vlad_popa Data 27 iunie 2007 14:43:02
Problema Farfurii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 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, val;

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

    val = N - (i * (i - 1) / 2 - K);
    if (i * (i - 1) / 2 == K)
        verif = 1;

    for (int j = 1; j <= N - i; ++ j)
        if (!verif || j != val)
            printf ("%d ", j);

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

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

    read ();
    solve ();

    return 0;
}