9void iterate(
long long n, std::vector<std::vector<long long>>& ans,
10 std::vector<long long> prefix = {}) {
12 ans.push_back(prefix);
14 long long max = prefix.size() ? std::min(prefix.back(), n) : n;
17 for (
long long i = 1; i <= max; i++) {
19 iterate(n - i, ans, prefix);
24std::vector<std::vector<long long>> partitions(
long long n) {
25 std::vector<std::vector<long long>> ans;