Cod sursa(job #2021926)

Utilizator andrei_diaconu11Andrei C. Diaconu andrei_diaconu11 Data 14 septembrie 2017 22:50:43
Problema Planeta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;

long long nr[31], sar, k;
ifstream fi("planeta.in");
ofstream fo("planeta.out");

void func(int st, int dr, long long co){
  int i = st - 1;
  long long curr = 0;
  while(sar + curr < k){
    i++;
    sar += curr;
    curr = nr[i - st] * nr[dr - i] * co;
  }
  fo << i << ' ';
  if(i > st)
    func(st, i - 1, co * nr[dr - i]);
  if(i < dr)
    func(i + 1, dr, co);
}

int main()
{
  int i, j, n;
  nr[0] = 1;
  nr[1] = 1;
  for(i = 2; i <= 30; i++)
    for(j = 1; j <= i; j++)
      nr[i] += nr[j - 1] * nr[i - j];
  fi >> n >> k;
  func(1, n, 1);
  fi.close();
  fo.close();
  return 0;
}