Submission #930559

#TimeUsernameProblemLanguageResultExecution timeMemory
930559RegulusToys (CEOI18_toy)C++17
59 / 100
1148 ms262144 KiB
#include <bits/stdc++.h> #define IO ios::sync_with_stdio(false);cin.tie(0); #define debug(x) cerr << #x << " = " << (x) << ' ' #define bug(x) cerr << (x) << ' ' #define endl cerr << '\n' #define all(v) (v).begin(), (v).end() #define SZ(v) (ll)(v).size() #define lowbit(x) (x)&-(x) #define pb emplace_back #define F first #define S second using namespace std; using ll = long long; using pll = pair<ll, ll>; //#define TEST int sum = 0; vector<int> v; inline void dfs(int x, int lim) { int m = sqrt(x); for (int i=lim; i <= m; ++i) { if (x % i) continue; if (x / i < lim) break; sum += i - 1; dfs(x / i, lim); sum -= i - 1; } v.pb(sum + x - 1); } int main(void) { IO int n, i; cin >> n; int m = sqrt(n), tmp = n; for (i=2; i <= m; ++i) while (!(tmp % i)) sum += i, tmp /= i; for (i=2; i <= m; ++i) { if (n % i) continue; sum = i - 1; dfs(n / i, i); } v.pb(n - 1); sort(all(v)); v.resize(unique(all(v))-v.begin()); cout << SZ(v) << '\n'; for (int x : v) cout << x << ' '; cout << '\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...