제출 #124380

#제출 시각아이디문제언어결과실행 시간메모리
124380youssefbou62Toys (CEOI18_toy)C++14
79 / 100
5100 ms50256 KiB
#include  <bits/stdc++.h>

using namespace std;

#define mp make_pair
#define fi first
#define se second
#define all(v) v.begin(),v.end()
#define allarr(a) a , a + n
#define ll long long
#define ull unsigned long long 
#define pb push_back
#define fastio ios_base::sync_with_stdio(false) ; cin.tie(NULL); cout.tie(NULL)
typedef pair<int, int> pi;
typedef pair<ll,ll> pll; 
typedef pair<int,pi> trp ;
typedef vector<pi> vpi;
typedef vector<pll> vpll ;
ll _abs (ll x ) { return (x>0?x:-x); }

set<int> ans ;
map<pi,bool> dp ; 
void solve(int n , int x ){
    // cout << n << " " << x << endl; 
    if( dp.count({n,x}) )return ; 
   dp[{n,x}] = 1 ; 
   if( n == 1 ){
       ans.insert(x) ;
       return ; 
   }

    for(int i =  1 ; i*i <= n ; i++ ){
        if( n % i == 0 ){
            if( i != 1 ) solve( n/i , x + i - 1 );
            solve( i , x + n/i - 1 );
        } 
    } 
}

int main(){
    int n ; 
    cin >> n ; 
    solve(n,0) ; 
    cout << ans.size() << endl; 
    for(int i : ans )cout << i << "  " ;
}
#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...