Cod sursa(job #432561)
| Utilizator | Data | 2 aprilie 2010 15:28:58 | |
|---|---|---|---|
| Problema | Farfurii | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <stdio.h>
int i,n,v[100001],poz,au,k;
FILE *f=fopen("farfurii.in","r"),*g=fopen("farfurii.out","w");
int main(void)
{
fscanf(f,"%d%d",&n,&k);
int p;
p=1;
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<0) v[i]=n-i+n-p+1;
else v[i]=i;
}
while (v[poz]<v[poz-1])
{
au=v[poz];
v[poz]=v[poz-1];
v[poz-1]=au;
poz--;
}
for (i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
fclose(g);
return 0;
}