Submission #1146585

#TimeUsernameProblemLanguageResultExecution timeMemory
1146585why1Toys (CEOI18_toy)C++20
79 / 100
5090 ms2520 KiB
#include <bits/stdc++.h> using namespace std; #include <chrono> using namespace std::chrono; #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 const int N = 5e5; const int mod = 1e9+7; const ll INF = 1e18; const int di[] = {1, -1, 0, 0}; const int dj[] = {0, 0, 1, -1}; set<int> ans; vector<int> d; void calc(int n,int x,int l=0){ if(n==1){ ans.insert(x); return; } for(int i = l; i < d.sz; i++){ if(d[i]<=n && n%d[i]==0){ calc(n/d[i],x+d[i]-1,i); } } } void solve() { int n; cin>>n; for(int i = 2; i*i <= n; i++){ if(n%i==0){ d.pb(i); if(i*i!=n) d.pb(n/i); } } d.pb(n); sort(all(d)); calc(n,0); 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); auto start = high_resolution_clock::now(); int t=1; //cin>>t; while(t--) { solve(); } auto stop = high_resolution_clock::now(); auto duration = duration_cast<microseconds>(stop - start); //cout << "TIMER: " << duration.count() << "\n"; 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...