Cod sursa(job #3301898)

Utilizator AswVwsACamburu Luca AswVwsA Data 1 iulie 2025 00:58:17
Problema Farfurii Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("sse2,bmi2")
#include <fstream>
#include <vector>
#include <cassert>
#define ll long long
using namespace std;

const int NMAX = 1e5;

bool seen[NMAX + 1];

ll gauss(int val)
{
    return 1LL * val * (val - 1) / 2;
}

int n;

struct aib
{
    int c[NMAX + 1];
    void update(int poz, int val)
    {
        for (; poz <= n; poz += poz & -poz)
            c[poz] += val;
    }
    int query(int poz)
    {
        int ans = 0;
        for (; poz; poz -= poz & -poz)
            ans += c[poz];
        return ans;
    }
};

aib ds;

int main()
{
    ifstream cin("farfurii.in");
    ofstream cout("farfurii.out");
    int i, j;
    ll k;
    cin >> n >> k;
    for (i = 1; i <= n; i++)
    {
        int cate = 0;
        for (j = 1; j <= n; j++)
            if (!seen[j])
            {
                if (cate + gauss(n - i) >= k)
                {
                    cout << j << " ";
                    seen[j] = 1;
                    k -= cate;
                    break;
                }
                cate++;
            }
    }
}