Submission #1147434

#TimeUsernameProblemLanguageResultExecution timeMemory
1147434why1Toys (CEOI18_toy)C++20
100 / 100
3443 ms115824 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define pii pair<int,int> #define sz size() #define all(v) v.begin(),v.end() #define fi first #define se second map<pii,bool> used; vector<int> st; vector<int> v; void calc(int n,int d,int l){ used[{n,d}]=true; if(n==1){ st.pb(d); return; } for(int j = l; j < v.sz; j++){ int i=v[j]; if(n<i) break; if(n%i==0){ if(i!=1 && !used[{n/i,d+i-1}]) calc(n/i,d+i-1,j); } } } void solve() { int n; cin>>n; for(int i = 2; i*i <= n; i++){ if(n%i==0){ v.pb(i); if(i*i!=n) v.pb(n/i); } } v.pb(n); sort(all(v)); calc(n,0,0); sort(all(st)); vector<int> ans; for(auto i: st) if(ans.empty() || ans.back()!=i) ans.pb(i); cout<<ans.sz<<"\n"; for(auto i: ans) cout<<i<<" "; cout<<"\n"; } int main() { //freopen("cowrun.in","r",stdin); //freopen("cowrun.out","w",stdout); ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); 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...