제출 #1133437

#제출 시각아이디문제언어결과실행 시간메모리
1133437mnbvcxz123Toys (CEOI18_toy)C++20
100 / 100
576 ms4400 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])--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...