Pagini recente » Cod sursa (job #2326287) | Cod sursa (job #1547609) | Cod sursa (job #792524) | Cod sursa (job #1827977) | Cod sursa (job #1700307)
#include <cstdio>
int N,v[100001]={},aux[100001]={};
long long int K,fk[100001]={},dist=1;
int main()
{
freopen("farfurii.in","r",stdin);
freopen("farfurii.out","w",stdout);
scanf("%d%d",&N,&K);
fk[1]=1;
for(int i=2;i<=N;i++)
fk[i]=fk[i-1]+i;
for(int i=1;i<=N;i++)
v[i]=i;
while(fk[dist]<K)
dist++;
while(K!=0)
{
if(K-dist>=0)
{
aux[0]++;
aux[aux[0]]=v[N-dist];
v[N-dist]=0;
K-=dist;
dist--;
}
else
dist--;
}
for(int i=1;i<=N;i++)
if(v[i]!=0)
printf("%d ",v[i]);
for(int i=aux[0];i>0;i--)
printf("%d ",aux[i]);
return 0;
}