Submission #463440

#TimeUsernameProblemLanguageResultExecution timeMemory
463440BT21tataToys (CEOI18_toy)C++17
59 / 100
5057 ms10492 KiB
#include<bits/stdc++.h>
// #pragma GCC target ("avx,avx2,fma")
// #pragma GCC optimize("Ofast")
// #pragma GCC optimize("unroll-loops")
typedef long long ll;
typedef long double ld;
#define SPEED ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0)
#define rall(v) (v).rbegin(),(v).rend()
#define all(v) (v).begin(),(v).end()
#define OK cerr<<"OK"<<endl<<flush
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pb push_back
#define F first
#define S second
#define y0 jahdakdh
#define y1 jahsadakdakdh
#define endl '\n'
using namespace std;
const ll MOD=1e9+7;
mt19937 rng(std::chrono::system_clock::now().time_since_epoch().count());

set<int> a[100005];

set<int> f(int n)
{
    set<int> ans;
    for(int i=2; i*i<=n; i++)
        if(n%i==0)
        {
            if(n/i<=100000)
            {
                if(!a[n/i].size()) a[n/i]=f(n/i);
                for(int u : a[n/i]) ans.insert(u+i-1);
            }
            else
            {
                set<int> w=f(n/i);
                for(int u : w) ans.insert(u+i-1);    
            }
        }
    ans.insert(n-1);
    return ans;
} 

int main()
{
    SPEED;
    int n;
    cin>>n;
    set<int> s=f(n);
    cout<<s.size()<<endl;
    for(int u : s) cout<<u<<' ';
    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...