#include <iostream>
#include <vector>
using namespace std;
long long maxProduct = 0;
vector<long long> bestSolution;
void backtrack(long long N, long long currentSum, long long currentProduct, vector<long long>& solution, long long start) {
if (currentSum == N) {
cout << "Boi so: ";
for (long long x : solution) {
cout << x << " ";
}
cout << " -> Tich: " << currentProduct << endl;
if (currentProduct > maxProduct) {
maxProduct = currentProduct;
bestSolution = solution;
}
return;
}
for (long long i = start; i <= N - currentSum; ++i) {
solution.push_back(i);
backtrack(N, currentSum + i, currentProduct * i, solution, i + 1);
solution.pop_back();
}
}
int main() {
long long N;
cin >> N;
vector<long long> solution;
backtrack(N, 0, 1, solution, 1);
cout << "Tich lon nhat: " << maxProduct << endl;
cout << "Cach phan tich tuong ung la:" << endl;
for (long long x : bestSolution) {
cout << x << " ";
}
cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBtYXhQcm9kdWN0ID0gMDsKdmVjdG9yPGxvbmcgbG9uZz4gYmVzdFNvbHV0aW9uOwoKdm9pZCBiYWNrdHJhY2sobG9uZyBsb25nIE4sIGxvbmcgbG9uZyBjdXJyZW50U3VtLCBsb25nIGxvbmcgY3VycmVudFByb2R1Y3QsIHZlY3Rvcjxsb25nIGxvbmc+JiBzb2x1dGlvbiwgbG9uZyBsb25nIHN0YXJ0KSB7CiAgICBpZiAoY3VycmVudFN1bSA9PSBOKSB7CiAgICAgICAgY291dCA8PCAiQm9pIHNvOiAiOwogICAgICAgIGZvciAobG9uZyBsb25nIHggOiBzb2x1dGlvbikgewogICAgICAgICAgICBjb3V0IDw8IHggPDwgIiAiOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8ICIgLT4gVGljaDogIiA8PCBjdXJyZW50UHJvZHVjdCA8PCBlbmRsOwoKICAgICAgICBpZiAoY3VycmVudFByb2R1Y3QgPiBtYXhQcm9kdWN0KSB7CiAgICAgICAgICAgIG1heFByb2R1Y3QgPSBjdXJyZW50UHJvZHVjdDsKICAgICAgICAgICAgYmVzdFNvbHV0aW9uID0gc29sdXRpb247CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBmb3IgKGxvbmcgbG9uZyBpID0gc3RhcnQ7IGkgPD0gTiAtIGN1cnJlbnRTdW07ICsraSkgewogICAgICAgIHNvbHV0aW9uLnB1c2hfYmFjayhpKTsKICAgICAgICBiYWNrdHJhY2soTiwgY3VycmVudFN1bSArIGksIGN1cnJlbnRQcm9kdWN0ICogaSwgc29sdXRpb24sIGkgKyAxKTsKICAgICAgICBzb2x1dGlvbi5wb3BfYmFjaygpOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIGxvbmcgbG9uZyBOOwogICAgY2luID4+IE47CgogICAgdmVjdG9yPGxvbmcgbG9uZz4gc29sdXRpb247CiAgICBiYWNrdHJhY2soTiwgMCwgMSwgc29sdXRpb24sIDEpOwoKICAgIGNvdXQgPDwgIlRpY2ggbG9uIG5oYXQ6ICIgPDwgbWF4UHJvZHVjdCA8PCBlbmRsOwogICAgY291dCA8PCAiQ2FjaCBwaGFuIHRpY2ggdHVvbmcgdW5nIGxhOiIgPDwgZW5kbDsKICAgIGZvciAobG9uZyBsb25nIHggOiBiZXN0U29sdXRpb24pIHsKICAgICAgICBjb3V0IDw8IHggPDwgIiAiOwogICAgfQogICAgY291dCA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==