Cod sursa(job #3244816)

Utilizator Sasha_12454Eric Paturan Sasha_12454 Data 26 septembrie 2024 17:21:29
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>

const std :: string FILENAME = "farfurii";

std :: ifstream f (FILENAME + ".in");

std :: ofstream g (FILENAME + ".out");

const int NMAX = 1e5 + 5;

int n;

long long k;

int ans[NMAX];

int main()
{

    f >> n >> k;

    for(int i = 1; i <= n; i ++)
    {
        if(1ll * (n - i) * (n - i - 1) / 2ll >= k)
        {
            ans[i] = i;
        }
        else
        {
            k -= 1ll * (n - i + 1) * (n - i) / 2;

            k = abs(k);

            ans[i] = n - k;

            int cnt = n;

            for(int j = i + 1; j <= n; j ++)
            {
                if(cnt == n - k)
                {
                    cnt --;
                }

                ans[j] = cnt --;
            }

            break;
        }
    }

    for(int i = 1; i <= n; i ++)
    {
        g << ans[i] << " ";
    }

    return 0;
}