Submission #643012

#TimeUsernameProblemLanguageResultExecution timeMemory
643012ddy888Toys (CEOI18_toy)C++17
100 / 100
2642 ms90132 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC optimize("unroll-loops") using namespace std; using namespace __gnu_pbds; using ll = long long; #define pb push_back #define fi first #define si second #define ar array typedef pair<int,int> pi; typedef tuple<int,int,int> ti; template<typename T> bool chmin(T &a, T b){return (b < a) ? a = b, 1 : 0;} template<typename T> bool chmax(T &a, T b){return (b > a) ? a = b, 1 : 0;} template<class key, class value = null_type, class cmp = less<key> > using ordered_set = tree<key, value, cmp, rb_tree_tag, tree_order_statistics_node_update>; mt19937 rng(chrono::system_clock::now().time_since_epoch().count()); void debug_out() {cerr<<endl;} template <typename Head, typename... Tail> void debug_out(Head _H, Tail... _T) {cerr<<" "<<to_string(_H);debug_out(_T...);} #define debug(...) cerr<<"["<<#__VA_ARGS__<<"]:",debug_out(__VA_ARGS__) int n; map<int,set<int>> mp; set<int> f(int x) { if (mp.find(x) != mp.end()) { return mp[x]; } set<int> cur; for (int i = 2; i <= sqrt(x); ++i) { if (x % i == 0) { for (auto j: f(x/i)) cur.insert(j+i-1); } } cur.insert(x-1); mp[x] = cur; return cur; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin.exceptions(ios::badbit | ios::failbit); cin >> n; set<int> ans = f(n); cout << ans.size() << '\n'; for (auto i: ans) cout << i << ' '; 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...