제출 #424792

#제출 시각아이디문제언어결과실행 시간메모리
424792tc_abdToys (CEOI18_toy)C++14
59 / 100
15 ms19456 KiB
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define mem(dp,x) memset(dp,x,sizeof(dp))
#define pii pair<int,int>
#include <bits/stdc++.h>
#define pll pair<ll,ll>
#define ll long long
#define pb push_back
#define mid (l+r)/2
#define S second
#define F first
using namespace std;
const int inf = 1e9+9;
const int mod = 1e9+7;
ll n;
set < ll > se;
map < ll , ll > dp[100009];
map < ll , bool > done[100009];
void bt(ll val,ll sum){
    if(sum < 0) return;
    if(val == 1){
        se.insert(sum);
    }
    if(done[val][sum] == 1) return;
    done[val][sum] = 1;
    for(ll i=1;i*i<=val;i++){
        if(val%i != 0) continue;
        if(i != 1) bt(val/i,sum+i-1);
        if(i != val/i){
            bt(val/(val/i),sum+(val/i)-1);
        }
    }
}
int main(){
    fast,cin>>n;
    bt(n,0);
    int sz = se.size();
    cout<<sz<<endl;
    for(auto it:se){
        cout<<it<<" ";
    }
    cout<<endl;
}
#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...