Submission #1249401

#TimeUsernameProblemLanguageResultExecution timeMemory
1249401MateiKing80Toys (CEOI18_toy)C++20
100 / 100
1869 ms86456 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> divz;
	for (int i = 1; i <= sqrt(n); i ++) {
		if (n % i == 0)
			divz.push_back(i);
		if (n % i == 0 && i * i < n)
			divz.push_back(n / i);
	}
	sort(divz.begin(), divz.end());
	int x = divz.size();
	vector<set<int>> dp(x);
	dp[0].insert(0);
	for (int i = 0; i < x; i ++) {
		for (int j = 0; j < i; j ++) {
			if (divz[i] % divz[j] != 0)
				continue;
			for (auto k : dp[j])
				dp[i].insert(k - 1 + divz[i] / divz[j]);
		}
	}
	cout << (int)dp[x - 1].size() << '\n';
	for (auto i : dp[x - 1])
		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...