Cod sursa(job #432604)
Utilizator | Data | 2 aprilie 2010 15:52:56 | |
---|---|---|---|
Problema | Farfurii | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <stdio.h>
#include <math.h>
FILE *f=fopen("farfurii.in","r"),*g=fopen("farfurii.out","w");
long long i,n,poz,k,a;
int main(void)
{
fscanf(f,"%lld%lld",&n,&k);
int p;
p=(long long)sqrt(2*k);
while ((p*(p-1))/2<k) p++;
poz=n-p+1+(p*(p-1))/2-k;
for (i=1;i<=n;i++)
{
if (n-i-p==-1)
a=n-poz+1+n-p;
else
{
if (n-i-p<0) if (i<=poz)a=n-i+1+n-p+1; else a=n-i+n-p+1;
else a=i;
}
fprintf(g,"%lld ",a);
}
fclose(g);
return 0;
}