Pagini recente » Cod sursa (job #2916822) | Cod sursa (job #860007) | Cod sursa (job #1355376) | Cod sursa (job #1997009) | Cod sursa (job #2899709)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("planeta.in");
ofstream fout("planeta.out");
void generare(int val[], int stanga, int dreapta, int aux) {
int radacina = stanga;
while (radacina < dreapta && (aux - (val[radacina - stanga] * val[dreapta - radacina])) >= 0) {
aux = aux - val[radacina - stanga] * val[dreapta - radacina];
radacina += 1;
}
fout << radacina << " ";
if (radacina > stanga) {
generare(val, stanga, radacina - 1, aux / val[dreapta - radacina]);
}
if (radacina < dreapta) {
generare(val, radacina + 1, dreapta, aux % val[dreapta - radacina]);
}
}
int main() {
int n, k, index1, index2, val[65];
fin >> n >> k;
for (index1 = 1; index1 <= n; index1 += 1) {
for (index2 = 1; index2 <= index1; index2 += 1) {
val[index1] = val[index1] + val[index1 - index2] * val[index2 - 1];
}
}
generare(val, 1, n, k - 1);
return 0;
}