Pagini recente » Cod sursa (job #1357924) | Cod sursa (job #2816574) | Cod sursa (job #2928866) | Cod sursa (job #2221683) | Cod sursa (job #3223772)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("farfurii.in");
ofstream g ("farfurii.out");
const int NMAX = 1e5;
int n, k;
//cel mai mic mai mare decat k;
int cb(){
long long st = 1;
long long dr = NMAX;
long long rez = NMAX+1;
while(st <= dr){
long long mij = (st + dr)/2;
if(mij * (mij-1)/2 >= k)
rez = mij, dr = mij-1;
else st = mij+1;
}
return rez;
}
int v[NMAX+1];
int main()
{
f >> n >> k;
int poz = cb();
for(int i=1; i<=n-poz; i++)
v[i] = i;
int x = poz*(poz-1)/2 - k;
//cout << n - x;
v[n - poz + 1] = n - x;
int sclav = n - poz + 2;
int val = n;
for(int i=sclav; i<=n; i++){
if(val == n - x)
val --;
v[i] = val;
val --;
}
for(int i=1; i<=n; i++)
g << v[i] << ' ';
return 0;
}