Submission #1201928

#TimeUsernameProblemLanguageResultExecution timeMemory
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...