Submission #124477

#TimeUsernameProblemLanguageResultExecution timeMemory
124477youssefbou62Toys (CEOI18_toy)C++14
100 / 100
1415 ms22576 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); } /* vector<int> ans; vector <pi> dp ; int N; void solve(int n, int x) { if (x >= N)return ; if (dp.find({n,x})!=dp.end()) return; dp.insert({n,x}); if (n == 1) { ans.pb(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() { scanf("%d",&N) ; solve(N, 0); sort(all(ans)); cout << ans.size() << endl; for (int i : ans) printf("%d ",i) ; } */ map<int,vector<int>> dp ; void add ( vector<int>& s , vector<int> t , int edge ){ for(int i : t )s.pb(i + edge ) ; } vector<int> dfs (int n ){ if( n == 1 ){ return {0}; } if( dp.count(n) )return dp[n]; vector<int> sum ; for (int i = 1; i * i <= n; i++){ if( n % i == 0 ){ if( i!= 1 ) add( sum , dfs ( n / i) , i - 1 ) ; add ( sum , dfs( i ) , n/i - 1 ); } } sort(all(sum)) ; sum.erase(unique(all(sum)),sum.end()) ; return dp[n] = sum ; } int main(){ int N ; scanf("%d",&N) ; vector <int> ans ; ans = dfs(N) ; // sort( all( ans ) ) ; printf("%d\n",(int)ans.size()) ; for(int i : ans )printf("%d ",i) ; }

Compilation message (stderr)

toy.cpp: In function 'int main()':
toy.cpp:87:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&N) ; 
     ~~~~~^~~~~~~~~
#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...