Submission #1190585

#TimeUsernameProblemLanguageResultExecution timeMemory
1190585AlgorithmWarriorToys (CEOI18_toy)C++20
100 / 100
1252 ms4372 KiB
#include <bits/stdc++.h> using namespace std; int n; int nrd; int divi[100000]; set<int>rasp; void get_divis(){ cin>>n; int i; for(i=1;i*i<n;++i) if(n%i==0){ divi[++nrd]=i; divi[++nrd]=n/i; } if(i*i==n) divi[++nrd]=i; sort(divi+1,divi+nrd+1); } void myback(int prod,int sum,int id){ if(prod==n) rasp.insert(sum); else{ int i; for(i=id;i<=nrd && 1LL*prod*divi[i]<=n;++i) if(n%(prod*divi[i])==0) myback(prod*divi[i],sum+divi[i]-1,i); } } void write(){ cout<<rasp.size()<<'\n'; for(auto el : rasp) cout<<el<<' '; } int main() { get_divis(); myback(1,0,2); write(); 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...