Pagini recente » Cod sursa (job #2801578) | Cod sursa (job #1590662) | Cod sursa (job #1132981) | Cod sursa (job #2560286) | Cod sursa (job #564126)
Cod sursa(job #564126)
#include <stdio.h>
using namespace std;
long long n,k,M,i,x;
FILE *f, *g;
void caut_bin()
{
int st,dr,mij;
st=1;
dr=n;
while (st<=dr)
{
mij=(st+dr)/2;
if (mij*(mij-1)/2<=k)
st=mij+1;
else
dr=mij-1;
}
M=mij;
}
int main()
{
f=fopen("farfurii.in","r");
g=fopen("farfurii.out","w");
fscanf(f,"%lld %lld",&n,&k);
// se cauta binar M a.i.
// m(m-1)/2 = K
caut_bin();
if (M*(M-1)/2==k)
{
for (i=1;i<=n-M;i++)
fprintf(g,"%d ",i);
for (i=0;i<M;i++)
fprintf(g,"%d ",n-i);
}
else if (M*(M-1)/2>=k)
{
x=(long long)(M*(M-1)/2-k);
for (i=1;i<=n-M;i++)
fprintf(g,"%d ",i);
fprintf(g,"%d ",n-x);
for (i=0;i<M;i++)
if (i!=x)
fprintf(g,"%d ",n-i);
}
else
{
for (i=0;i<M;i++)
fprintf(g,"%d ",n-i);
}
fclose(f);
fclose(g);
return 0;
}