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