# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1035375 | ByeWorld | Toys (CEOI18_toy) | C++14 | 1464 ms | 96084 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>
#pragma GCC optimize("O3")
// #define int long long
#define ll long long
#define pb push_back
#define fi first
#define se second
#define lf (id<<1)
#define rg ((id<<1)|1)
#define md ((l+r)>>1)
using namespace std;
typedef pair<int,int> pii;
typedef pair<int,pii> ipii;
const int MAXN = 2e5+15;
const int INF = 1e9+10;
void chmn(int &a, int b){ a = min(a, b); }
int n;
vector <int> vec;
map<int,int> idx;
set <int> s[MAXN];
signed main(){
// ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n;
if(n==1){
cout << "1\n0\n"; exit(0);
}
for(int i=1; i*i<=n; i++){
if(n%i == 0){
vec.pb(i);
if(n != i*i) vec.pb(n/i);
}
}
sort(vec.begin(), vec.end());
for(int i=0; i<vec.size(); i++) idx[vec[i]] = i;
s[0].insert(0);
for(int i=1; i<vec.size(); i++){
int x = vec[i];
for(int j=1; j*j<=x; j++){
// kali j
if(x%j != 0) continue;
int id = idx[j];
for(auto in : s[id]) s[i].insert(in+x/j-1);
if(j!=1){
id = idx[x/j];
for(auto in : s[id]) s[i].insert(in+j-1);
}
}
}
cout << s[vec.size()-1].size() << '\n';
for(auto in : s[vec.size()-1]) cout << in << ' ';
cout << '\n';
}
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... |