Pagini recente » Cod sursa (job #3140604) | Cod sursa (job #2001417) | Cod sursa (job #1817121) | Cod sursa (job #2969578) | Cod sursa (job #67210)
Cod sursa(job #67210)
#include<stdio.h>
long long int n,k,r,l,i,m,mm,p;
int main()
{
FILE *f,*g;
f=fopen("farfurii.in","r");
g=fopen("farfurii.out","w");
fscanf(f,"%lld%lld",&n,&k);
if(!k)
{ for(i=1;i<=n;i++)
fprintf(g,"%lld ",i);
fprintf(g,"\n");
fcloseall();
return 0;
}
r=n;l=0;
while(r-l>1)
{
m=(r+l)/2;
mm=(m*(m-1))/2;
if(k==mm){r=m;l=m;}
else
if(k>mm)l=m+1;
else r=m-1;
}
m=l;mm=(m*(m-1))/2;
if(k==mm)
{
for(i=1;i<=n-m;i++)
fprintf(g,"%lld ",i);
for(i=n;i>=n-m+1;i--)
fprintf(g,"%lld ",i);
fprintf(g,"\n");
fcloseall();
return 0;
}
for(i=1;i<n-m;i++)
fprintf(g,"%lld ",i);
mm=(m*(m+1))/2;
p=n+k-mm;
fprintf(g,"%lld ",p);
for(i=n;i>p;i--)
fprintf(g,"%lld ",i);
for(i=p-1;i>=n-m;i--)
fprintf(g,"%lld ",i);
fprintf(g,"\n");
fcloseall();
return 0;
}