제출 #1201928

#제출 시각아이디문제언어결과실행 시간메모리
1201928loomToys (CEOI18_toy)C++20
100 / 100
1029 ms21996 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf 5e18
#define nl '\n'

map<int, vector<int>> dp;

vector<int> rec(int n){
   if(!dp[n].empty()) return dp[n];

   set<int> st;
   for(int i=2; i*i <= n; i++){
      if(n % i != 0) continue;

      auto v = rec(n/i);
      for(int x : v) st.insert(x + i-1);

      if(n/i == i) continue;
      v = rec(i);
      for(int x : v) st.insert(x + n/i-1);
   }
   st.insert(n-1);

   vector<int> v;
   for(int x : st) v.push_back(x);
   return dp[n] = v;
}

inline void solve(){
   int n;
   cin>>n;

   auto v = rec(n);
   cout<<v.size()<<nl;
   for(int x : v) cout<<x<<" ";
}

signed main(){
   ios_base::sync_with_stdio(0);
   cin.tie(NULL);cout.tie(NULL);

   int t = 1;
   //cin>>t;
   while(t--) solve();

   return 0;
}
#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...