Pagini recente » Cod sursa (job #241363) | Cod sursa (job #2633569) | Cod sursa (job #990529) | Cod sursa (job #2890624) | Cod sursa (job #2086790)
#include <bits/stdc++.h>
using namespace std;
int n,k,i,arb[300010],poz;
ofstream g ("farfurii.out");
void update(int node,int l,int r,int lib)
{
if(l==r)
{
arb[node]=1;
g<<l<<" ";
return ;
}
int mid=(l+r)/2;
if(lib<=(mid-l+1)-arb[node*2])update(node*2,l,mid,lib);
else update(node*2+1,mid+1,r,lib-((mid-l+1)-arb[node*2]));
arb[node]=arb[node*2]+arb[node*2+1];
}
int main()
{
ifstream cin ("farfurii.in");
cin>>n>>k;
for(i=1; i<=n; ++i)
if(k<=(n-i)*(n-i-1)/2)update(1,1,n,1);
else
{
poz=k-(n-i)*(n-i-1)/2+1;
k=(n-i)*(n-i-1)/2;
update(1,1,n,poz);
}
return 0;
}