Submission #1352998

#TimeUsernameProblemLanguageResultExecution timeMemory
1352998NewtonabcToys (CEOI18_toy)C++20
59 / 100
5098 ms118368 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
map<pair<ll,ll>,int> mp;
ll n;
vector<ll> f,ans;
void dfs(ll now,ll sum){
    if(mp[{now,sum}]) return;
    mp[{now,sum}]=1;
    if(now==n){
        ans.push_back(sum);
        return;
    }
    for(auto x:f){
        if(now*x>n) break;
        dfs(now*x,sum+(x-1));
    }
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin>>n;
    for(int i=1;i<=sqrt(n);i++){
        if(n%i) continue;
        f.push_back(i);
        if(n/i!=i) f.push_back(n/i);
    }
    sort(f.begin(),f.end());
    dfs(1,0);
    sort(ans.begin(),ans.end());
    ans.erase(unique(ans.begin(),ans.end()),ans.end());
    cout<<ans.size() <<"\n";
    for(auto x:ans) cout<<x <<" ";
}
#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...