Submission #1133436

#TimeUsernameProblemLanguageResultExecution timeMemory
1133436mnbvcxz123Toys (CEOI18_toy)C++20
0 / 100
0 ms324 KiB
#include<bits/stdc++.h>
using namespace std;
using ll=long long;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int n;
    cin>>n;
    if(n==1){
        cout<<"1\n0\n";
        return 0;
    }
    vector<int>d{n};
    for(int i=2;i*i<=n;++i)
        if(n%i==0){
            d.push_back(i);
            if(i*i!=n)d.push_back(n/i);
        }
    sort(d.begin(),d.end());
    set<int>st;
    auto dfs=[&](auto dfs, int x, int s, int i)->void{
        if(x==1){
            st.insert(s);
            return;
        }
        while(i>=0 and x%d[i]==0)--i;
        if(i<0)return;
        dfs(dfs,x/d[i],s+d[i]-1,i);
        dfs(dfs,x,s,i-1);
    };
    dfs(dfs,n,0,d.size()-1);
    cout<<st.size()<<'\n';
    for(const int&i:st)cout<<i<<' ';
    cout<<'\n';
}
#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...