Submission #1343208

#TimeUsernameProblemLanguageResultExecution timeMemory
1343208nguyenkhangninh99Toys (CEOI18_toy)C++20
100 / 100
1710 ms4548 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
int d[676767];
set<int> s;

void dfs(int i, int n, int val, int ans){
	if(val == 1) s.insert(ans);
	else for(int j = i; j <= n && d[j] <= val; j++) if(val % d[j] == 0) dfs(j, n, val / d[j], ans + d[j] - 1);
}
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    int n; cin >> n;
    int cnt = 0;
    for(int i = 1; i * i <= n; i++){
        if(n % i == 0){
            if(i * i != n) d[++cnt] = n / i;
            d[++cnt] = i;
        }
    }
	sort(d + 1, d + cnt + 1);
	dfs(2, cnt, n, 0);
    cout << s.size() << "\n";
    for(int x: s) cout << x << " ";
}
#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...