Cod sursa(job #1460876)

Utilizator mirupetPetcan Miruna mirupet Data 14 iulie 2015 11:32:06
Problema Farfurii Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;

int N, K, X, Y, i, nr;

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

        scanf("%d%d", &N, &K);
        X = 8* K + 1;
        X = (double)sqrt((double)X);
        X = (X + 1)/2;

        nr = 1LL * X * (X-1)/2;
        if( nr == K)
            {
                for ( i = 1; i <= N - X; i++)
                    printf("%d ", i);
                for ( i = N; i > N - X; i--)
                    printf("%d ", i);
            }
        else
        {
            Y = K - nr;
            nr = N - X;

            for ( i = 1; i <= nr - 1; i++)
                printf("%d ", i);
            printf("%d ", nr + Y);
            for ( i = N; i > nr + Y; i--)
                printf("%d ", i);
            for ( i = nr + Y - 1; i > nr - 1; i--)
                printf("%d ", i);
        }

    }