제출 #1353027

#제출 시각아이디문제언어결과실행 시간메모리
1353027NewtonabcToys (CEOI18_toy)C++20
100 / 100
1635 ms86532 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
vector<ll> v;
map<int,set<ll>> dp;
void f(int n){
    dp[n].insert(n-1);
    for(int j=2;j<=sqrt(n);j++){
        if(n%j) continue;
        int iv=n/j;
        for(auto x:dp[j]) dp[n].insert(x+iv-1);
        if(iv!=j) for(auto x:dp[iv]) dp[n].insert(x+j-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;
        v.push_back(i);
        if(n/i!=i) v.push_back(n/i);
    }
    sort(v.begin(),v.end());
    for(auto x:v) f(x);
    cout<<dp[n].size() <<"\n";
    for(auto x:dp[n]) 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...