Submission #1196903

#TimeUsernameProblemLanguageResultExecution timeMemory
1196903LucaLucaMToys (CEOI18_toy)C++17
100 / 100
876 ms109868 KiB
#include <iostream> #include <vector> #include <algorithm> #include <cassert> using ll = long long; #define debug(x) #x << " = " << x << '\n' int main() { #ifdef LOCAL freopen("input.txt", "r", stdin); #endif std::ios_base::sync_with_stdio(false); std::cin.tie(0); int n; std::cin >> n; std::vector<int> divs; for (int d = 1; d * d <= n; d++) { if (n % d == 0) { divs.push_back(d); if (d * d != n) { divs.push_back(n / d); } } } std::sort(divs.begin(), divs.end()); int sz = (int) divs.size(); std::vector<std::vector<int>> sums(sz); sums[0].push_back(0); for (int i = 1; i < sz; i++) { for (int j = 0; j < i; j++) { if (divs[i] % divs[j] == 0) { // sums[i] U= sums[j] + divs[i] / divs[j] - 1 for (int k : sums[j]) { sums[i].push_back(k + divs[i] / divs[j] - 1); } } } std::sort(sums[i].begin(), sums[i].end()); sums[i].erase(std::unique(sums[i].begin(), sums[i].end()), sums[i].end()); } std::cout << sums.back().size() << '\n'; for (int x : sums.back()) { std::cout << x << ' '; } return 0; } // lol aparent o aveam deja bagata
#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...