Submission #920748

#TimeUsernameProblemLanguageResultExecution timeMemory
920748Faisal_SaqibToys (CEOI18_toy)C++17
100 / 100
2600 ms90728 KiB
#include <iostream> #include <map> #include <set> using namespace std; const int N=1e4+10; map<int,int> mp; set<int> cm[N]; void pos(long long&x) { auto it=mp.find(x); if(it!=mp.end()) return; int nm=mp.size(); mp[x]=nm; cm[nm]={x-1}; for(long long d=2;(d*d)<=x;d++) { if(x%d==0) { long long rem=x/d; pos(rem); auto nxt=cm[mp[rem]]; for(auto j:nxt) cm[nm].insert(j+(d-1)); if((d*d)!=x) { d=x/d; long long rem=x/d; pos(rem); auto nxt=cm[mp[rem]]; for(auto j:nxt) cm[nm].insert(j+(d-1)); d=x/d; } } } } int main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(0); long long n; cin>>n; pos(n); auto tlp=cm[mp[n]]; cout<<tlp.size()<<'\n'; for(auto j:tlp) { cout<<j<<' '; } cout<<'\n'; }

Compilation message (stderr)

toy.cpp: In function 'void pos(long long int&)':
toy.cpp:15:11: warning: narrowing conversion of '(x - 1)' from 'long long int' to 'int' [-Wnarrowing]
   15 |  cm[nm]={x-1};
      |          ~^~
toy.cpp:15:11: warning: narrowing conversion of '(x - 1)' from 'long long int' to 'int' [-Wnarrowing]
#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...