#include #include //#include using std::vector; vector optimal_summands(int n) { vector summands; if (n < 3) { summands.push_back(n); return summands; } int runningSum = 0; for (int i = 1; i < n + 1; i++) { runningSum = runningSum + i; summands.push_back(i); if (runningSum == n) { break; } if (runningSum > n) { summands.pop_back(); summands.back() = summands.back() + n - runningSum + i; break; } } return summands; } int main() { int n; std::cin >> n; vector summands = optimal_summands(n); std::cout << summands.size() << '\n'; for (size_t i = 0; i < summands.size(); ++i) { std::cout << summands[i] << ' '; } }