Pagini recente » Cod sursa (job #497) | Cod sursa (job #419503) | Cod sursa (job #3149216) | Cod sursa (job #143510) | Cod sursa (job #3275613)
#include <bits/stdc++.h>
#define ll long long int
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
const int nmax = 1e5+10;
ll n,k;
vector<ll> values(nmax,0);
ll binary_search(ll a,ll b,ll val){
ll st = a,dr = b,ans;
while(st <= dr){
ll mij = (st+dr)/2;
if(mij*(mij-1)/2 <= val){
ans = mij;
st = mij+1;
}else{
dr = mij-1;
}
};
return ans;
};
int main(){
fin >> n >> k;
ll number = binary_search(1,n,k);
ll remainder = k-(number*(number-1)/2);
for(ll i = 1;i <= n-number; i++){
values[i] = i;
};
for(ll i = n-number+1,j = 0; i <=n; i++,j++){
values[i] = n-j;
};
if(remainder){
values[n-number] = values[n-remainder+1];
for(ll i = n-remainder+1; i <=n-1; i++){
values[i] = values[i+1];
};
values[n] = n-number;
};
for(ll i = 1; i <=n; i++){
fout << values[i] << " ";
};
return 0;
}