Pagini recente » Cod sursa (job #3289575) | Cod sursa (job #2637655) | Cod sursa (job #2636971) | Cod sursa (job #2535446) | Cod sursa (job #564130)
Cod sursa(job #564130)
#include <stdio.h>
#define ll long long
using namespace std;
ll n,k,M,i,x;
FILE *f, *g;
void caut_bin()
{
ll st,dr,mij;
st=1;
dr=n;
while (st<=dr)
{
mij=(st+dr)/2;
if ((long long)(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 (1ll*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
{
x=1ll*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);
}
fclose(f);
fclose(g);
return 0;
}