Submission #1168276

#TimeUsernameProblemLanguageResultExecution timeMemory
1168276altern23Toys (CEOI18_toy)C++20
79 / 100
5071 ms71856 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<ll, ll> #define fi first #define sec second #define ld long double const ll N = 1e5; const ll INF = 4e18; const ll MOD = 998244353; vector<ll> ans; map<pii, ll> mp; void calc(ll idx, ll sum){ if(mp.count({idx, sum})) return; mp[{idx, sum}] = 1; if(idx == 1){ ans.push_back(sum); } for(ll i = 1; i * i <= idx; i++){ if(idx % i) continue; if(i != 1) calc(idx / i, sum + i - 1); if(idx / i != 1 && i != idx / i){ calc(idx / (idx / i), sum + idx / i - 1); } } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc = 1; // cin >> tc; for(;tc--;){ ll n; cin >> n; calc(n, 0); sort(ans.begin(), ans.end()); ans.erase(unique(ans.begin(), ans.end()), ans.end()); cout << (int)ans.size() << "\n"; for(auto i : ans) cout << i << " "; cout << "\n"; } } /* */
#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...