Pagini recente » Cod sursa (job #747475) | Cod sursa (job #1743701) | Clasament preoni62c | Cod sursa (job #3212298) | Cod sursa (job #3286362)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long n, k, i, j, nr, rasp[100002];
static inline long long Cb(long long k) {
long long st = 1, dr = n;
long long poz = 0;
while(st <= dr) {
long long mij = st + (dr - st) / 2;
if(mij * (mij - 1) / 2 <= k) {
poz = mij;
st = mij + 1;
}
else dr = mij - 1;
}
return poz;
}
int main() {
fin >> n >> k;
nr = Cb(k);
k -= nr * (nr - 1) / 2;
for(i = 1 ; i <= n - nr; i++) rasp[i] = i;
for(i = n - nr + 1; i <= n ; i++) rasp[i] = n - j++;
if(k > 0) {
rasp[n - nr] = rasp[n - k + 1];
for(i = n - k + 1; i <= n - 1; i++) rasp[i] = rasp[i + 1];
rasp[n] = n - nr;
}
for(i = 1; i <= n; i++) fout << rasp[i] << " ";
return 0;
}