Submission #131153

#TimeUsernameProblemLanguageResultExecution timeMemory
131153VardanyanToys (CEOI18_toy)C++14
79 / 100
5087 ms50268 KiB
#include <bits/stdc++.h> using namespace std; map<int,int> s; map<pair<int,int>,int> mp; vector<int> ans; vector<int> divs[1000*100+1]; void rec(int n,int sm){ if(mp[{n,sm}]) return; mp[{n,sm}] = 1; if(n == 1){ if(!s[sm]){ ans.push_back(sm); s[sm] = 1; } return; } for(int i = 1;i*i<=n;i++){ if(n%i) continue; if(i>1){ rec(n/i,sm+i-1); } int x = n/i; rec(n/x,sm+x-1); } } int main(){ ios_base::sync_with_stdio(false); int n; cin>>n; rec(n,0); cout<<ans.size()<<endl; sort(ans.begin(),ans.end()); for(int i = 0;i<ans.size();i++) cout<<ans[i]<<" "; cout<<endl; return 0; }

Compilation message (stderr)

toy.cpp: In function 'int main()':
toy.cpp:33:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0;i<ans.size();i++) cout<<ans[i]<<" ";
                   ~^~~~~~~~~~~
#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...