Pagini recente » Cod sursa (job #658113) | Cod sursa (job #710656) | Cod sursa (job #747557) | Cod sursa (job #708360) | Cod sursa (job #3275612)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
const int nmax = 1e5+10;
int n,k;
vector<int> values(nmax,0);
int binary_search(int a,int b,int val){
int st = a,dr = b,ans;
while(st <= dr){
int 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;
int number = binary_search(1,n,k);
int remainder = k-(number*(number-1)/2);
for(int i = 1;i <= n-number; i++){
values[i] = i;
};
for(int i = n-number+1,j = 0; i <=n; i++,j++){
values[i] = n-j;
};
if(remainder){
values[n-number] = values[n-remainder+1];
for(int i = n-remainder+1; i <=n-1; i++){
values[i] = values[i+1];
};
values[n] = n-number;
};
for(int i = 1; i <=n; i++){
fout << values[i] << " ";
};
return 0;
}