Submission #955955

#TimeUsernameProblemLanguageResultExecution timeMemory
955955berrToys (CEOI18_toy)C++17
100 / 100
1133 ms6024 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod =1e9+7;
 
int mul(int x, int y){
    return (x*y)%mod;
}
 
int sum(int x, int y){
    return (x+y)%mod;
}
int poww(int x, int y){
    if(y==0) return 1;
 
    int tmp =poww(x, y/2);
    tmp=mul(tmp, tmp);
 
    if(y%2) return mul(tmp, x);
    return tmp;
}
 
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
 
    int n; cin >> n;
 
    auto calc=[&](int n, int v, auto&& calc)->set<int>{
        set<int> res;
        for(int i=v; (i+1)*(i+1)<=n; i++){
            if(n%(i+1)==0){
                set<int> y=calc(n/(i+1), i, calc);
                for(auto l: y) res.insert(i+l);
            }
        }
        res.insert(n-1);
        return res;
    };
 
    set<int> x=calc(n, 1, calc);
    cout<<x.size()<<"\n";
    for(auto i: x) cout<<i<<" ";
 
 
}  
#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...