Cod sursa(job #742164)

Utilizator visanrVisan Radu visanr Data 28 aprilie 2012 19:42:31
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cstdio>
#include <cstdlib>
using namespace std;


long long n, k, v[100002];



void solve()
{
     long long i, j, x;
     scanf("%lld %lld", &n, &k);
     for(i = 0; i <= n; ++i)
     {
           if(k == i * (i - 1) / 2)
           {
                for(j = 1; j <= n - i; ++j) printf("%lld ", j);
                for(j = n; j >= n - i + 1; --j) printf("%lld ", j);
                return ;
           }else
           {
                if( (k > i*(i - 1)/2) && (k < i*(i + 1)/2))
                {
                    x = n - ((i + 1) * i/2 - k);
                    for(j = 1; j < n - i; j++) printf("%lld ", j);
                    printf("%lld ", x);
                    for(j = n;j >= n - i; --j) if(j != x)  printf("%lld ",j);
                }
           }
     }
}

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