제출 #920813

#제출 시각아이디문제언어결과실행 시간메모리
920813Faisal_SaqibToys (CEOI18_toy)C++17
100 / 100
893 ms22224 KiB
#include <iostream> #include <map> #include <vector> #include <algorithm> using namespace std; map<int,vector<int>> mp; void pos(long long&x) { auto it=mp.find(x); if(it!=mp.end()) return; vector<int> cur={x-1}; for(long long d=2;(d*d)<=x;d++) { if(x%d==0) { long long rem=x/d; pos(rem); for(auto&j:mp[rem]) cur.push_back(j+(d-1)); if((d*d)!=x) { d=x/d; long long rem=x/d; pos(rem); for(auto&j:mp[rem]) cur.push_back(j+(d-1)); d=x/d; } } } sort(begin(cur),end(cur)); cur.resize(unique(begin(cur),end(cur))-begin(cur)); mp[x]=cur; } int main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(0); long long n; cin>>n; pos(n); auto tlp=mp[n]; cout<<tlp.size()<<endl; for(auto j:tlp) { cout<<j<<' '; } cout<<endl; }

컴파일 시 표준 에러 (stderr) 메시지

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