Cod sursa(job #29528)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 9 martie 2007 15:33:16
Problema Farfurii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
#include<math.h>
long long n,k,rad,aprox,a[100000],i,j,dif,aux;
int main()
{
 freopen("farfurii.in","r",stdin);
 freopen("farfurii.out","w",stdout);
 scanf("%ld %ld",&n,&k);
 rad=sqrt(2*k);
 dif=(rad*(rad+1))/2-k;
 for(i=1;i<=n-rad-1;i++)
 a[i]=i;
 for(j=n-rad;j<=n;j++)
  a[j]=n+rad-j-1;
 a[n-rad]=a[n-rad+dif];
 for(j=n-rad+1;j<=n;j++)
 {
  a[j]=n+rad-j;
  if (a[n-rad]==a[j]) {j++;a[j-1]=n+rad-j;}
 }
 for(i=1;i<=n;i++)
  printf("%ld ",a[i]);
 printf("\n");
 return 0;
}