제출 #746481

#제출 시각아이디문제언어결과실행 시간메모리
746481vjudge1Toys (CEOI18_toy)C++17
79 / 100
5012 ms11688 KiB
#include <bits/stdc++.h>
using namespace std;

const int SQ = 1e5;
vector<int> vec;
vector<int> ans[SQ];
int n , sz;

void cal(int n){
	for(int i = 1 ; i * i <= n ; i++){
		if(n % i) continue;
		vec.push_back(i);
		if(i * i != n) vec.push_back(n / i);
	}
}

int main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	ans[0].push_back(0);
	cin >> n;
	cal(n);
	sort(vec.begin() , vec.end());
	sz = (int)vec.size();
	for(int i = 1 ; i < sz ; i++){
		for(int j = 0 ; j < i ; j++){
			if(vec[i] % vec[j]) continue;
			for(int k : ans[j]) ans[i].push_back(vec[i] / vec[j] + k - 1);
			sort(ans[i].begin() , ans[i].end());
			ans[i].resize(unique(ans[i].begin() , ans[i].end()) - ans[i].begin());
		}
	}
	cout << (int)ans[sz - 1].size() << '\n';
	for(int k : ans[sz - 1])
		cout << k << ' ';
	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...