Submission #1214176

#TimeUsernameProblemLanguageResultExecution timeMemory
1214176vako_pToys (CEOI18_toy)C++20
100 / 100
406 ms2416 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define sd second
#define debug(x) cerr << #x << "----> " << x << endl;
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("O3")

const int mxN = 1e6 + 5;
ll n,cc = 0;
bitset<1000000000> vis;
vector<ll> ans;

void f(ll x, ll val = 0, ll last = 1e9){
	if(!vis[val + x - 1]){
		ans.pb(val + x - 1);
		vis[val + x - 1] = true;
	}
	for(int i = 2; i <= min((ll)sqrtl(x), last); i++){
		if(x % i == 0){
			ll k = i;
			f(x / k, val + k - 1, k);
			k = x / i;
			if(k <= last) f(x / k, val + k - 1, k);
		} 
	}
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	f(n);
	sort(ans.begin(), ans.end());
	cout << ans.size() << '\n';
	for(auto it : ans) cout << it << ' ';
}
#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...