Pagini recente » Cod sursa (job #2359157) | Cod sursa (job #2515948) | Cod sursa (job #407634) | preONI 2005 runda #1 - solutii | Cod sursa (job #3301898)
#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++;
}
}
}