# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1051508 | anton | Toys (CEOI18_toy) | C++17 | 5041 ms | 812 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct Venice{
unordered_set<int> s;
int d = 0;
void add(int k){
d+=k;
}
void insert(int i){
s.insert(i-d);
}
vector<int> iter(){
vector<int> res;
for(auto e: s){
res.push_back(e+d);
}
return res;
}
void merge(Venice& b){
if(b.s.size()>s.size()){
swap(b.s, s);
swap(d, b.d);
}
for(auto e: b.iter()){
insert(e);
}
}
};
int N;
vector<int> factorize(int n){
vector<int> res;
for(int i = 2; i*i<=n;i++){
if(n%i == 0){
res.push_back(i);
if(i*i!=n){
res.push_back(n/i);
}
}
}
res.push_back(n);
return res;
}
void recur(int pos, int max_c, vector<vector<int>>& res, vector<int>& cur){
if(pos == cur.size()){
res.push_back(cur);
return;
}
for(int i = 0; i<max_c; i++){
cur[pos] = i;
recur(pos+1, max_c, res, cur);
}
}
unordered_set<int, Venice> sums;
Venice get_sums(int n){
Venice res;
if(n==1){
res.insert(0);
return res;
}
auto factors = factorize(n);
for(auto e: factors){
auto ch_s = get_sums(n/e);
ch_s.add(e-1);
res.merge(ch_s);
}
return res;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>N;
auto possib = get_sums(N);
vector<int> res;
for(auto e: possib.iter()){
res.push_back(e);
}
sort(res.begin(), res.end());
cout<<res.size()<<endl;
for(auto e: res){
cout<<e<<" ";
}
cout<<endl;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |