Cod sursa(job #68299)

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

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

int N, K;

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

    scanf ("%d %d\n", &N, &K);
    for (i = 1; ((i * (i - 1)) >> 1) < K; ++ i);

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

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

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

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

    solve ();

    return 0;
}