Cod sursa(job #1822082)

Utilizator andrei_diaconu11Andrei C. Diaconu andrei_diaconu11 Data 4 decembrie 2016 11:04:15
Problema Farfurii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>

int main()
{
  long long n, k, nr, x, i;
  FILE *fi=fopen("farfurii.in", "r"), *fo=fopen("farfurii.out", "w");
  fscanf(fi, "%d%d", &n, &k);
  //pentru ca config sa fie min lexicografica tre sa impingem farfuriile aflate descrescator cat de mult spre dreapta
  //astfel va aparea la final o secv descrescatoare de x elemente
  for(x=1;x*(x-1)/2<=k;x++);
  //la final cel mai probabil nu E x natural a.i. x*(x-1)/2==k => tre sa alegem un nr sa stea in fata acestei secvente ca sa produca k in total
  x--;
  k=k-(x*(x-1)/2);
  nr=x+k-1;
  for(i=1;i<x-1;i++)
    fprintf(fo, "%d ", i);
  fprintf(fo, "%d", nr);
  for(i=n;i>=x-1;i--)
    if(i!=nr)
      fprintf(fo, " %d", i);
  fclose(fi);
  fclose(fo);
  return 0;
}