Submission #679150

#TimeUsernameProblemLanguageResultExecution timeMemory
679150KiprasToys (CEOI18_toy)C++17
0 / 100
126 ms262144 KiB
#include <bits/stdc++.h>

typedef long long ll;

using namespace std;

ll n;
set<ll> res;
vector<ll> divv;

void gen(ll mult, ll sum, ll last){

    //cout<<k<<" "<<sum<<" "<<mult<<endl;
    if(mult==1){
        res.insert(sum);
        return;
    }

    for(auto i : divv){
        //cout<<i<<" "<<mult*i<<" "<<n%(mult*i)<<endl;
        if(i<last)continue;
        if(mult%i==0){
            gen(mult/i, sum+i-1, i);
        }
    }


}

int main()
{

    ios_base::sync_with_stdio(0);cin.tie(nullptr);

    cin>>n;

    for(int i = 1; i*i <= n; i++){
        if(n%i==0){
            divv.push_back(i);
            if(n/i!=i)divv.push_back(n/i);
        }
    }

    gen(n, 0, 0);

    cout<<res.size()<<"\n";
    for(auto i : res){
        cout<<i<<" ";
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...