Cod sursa(job #4725)

Utilizator vmaneavmanea vmanea Data 6 ianuarie 2007 13:50:27
Problema Farfurii Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>


int N,K,MAX,POZM,aux,MAX1,v;

int i;

int S[105],POZ[105];

int main()

{

 freopen("farfurii.in", "r", stdin);

 freopen("farfurii.out", "w", stdout);


 scanf("%d %d", &N, &K);


 for (i=1;i<=N;i++)

 {

  S[i]=N-i+1;

  POZ[N-i+1]=i;

  if (i*(i-1)/2<=K)

   MAX=i;

 }

 for (i=1;i<=MAX;i++)

 {

  S[i]=i+S[MAX+1];

  POZ[i+S[MAX+1]]=i;

 }

 K-=MAX*(MAX-1)/2;

 for (v=S[MAX+1];K;K--,v++)

 {

  POZ[v]=POZ[v+1];

  POZ[v+1]=MAX+1;

 }

 for (i=N;i;i--)

  S[POZ[i]]=i;


 for (i=N;i>1;i--)

  printf("%d ", S[i]);

 printf("%d\n", S[i]);

 return 0;

}