Cod sursa(job #334553)

Utilizator DraStiKDragos Oprica DraStiK Data 27 iulie 2009 12:02:18
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>

long long k,s;
int n,m,p;

void solve ()
{
    int i;
    for (i=1; i<n; ++i)
    {
        s+=i;
        if (s>=k)
            break;
    }
    if (!s)
        m=n+1;
    else
        m=n-i;
}

void print ()
{
    int i;
    for (i=1; i<m; ++i)
        printf ("%d ",i);
    if (s==k)
        for (i=n; i>=m; --i)
            printf ("%d ",i);
    else
    {
        for (i=n; i>=m; --i)
            if (s-n+i==k)
            {
                p=i;
                printf ("%d ",p);
                break;
            }
        for (i=n; i>=m; --i)
            if (i!=p)
                printf ("%d ",i);
    }
}

int main ()
{
    freopen ("farfurii.in","r",stdin);
    freopen ("farfurii.out","w",stdout);

    scanf ("%d%lld",&n,&k);
    solve ();
    print ();

    return 0;
}