Submission #1133466

#TimeUsernameProblemLanguageResultExecution timeMemory
1133466ZeroCoolToys (CEOI18_toy)C++20
100 / 100
1375 ms86536 KiB
#include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; template<typename T> using order_set = tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>; #define ar array #define ld long double #define all(v) v.begin(), v.end() #define int long long #pragma GCC optimize("unroll-loops,O3,Ofast") const int inf = 1e15 + 20; const int maxN = 4e5 + 20; vector<int> div(int x ){ vector<int> ret; for(int i = 1;i * i <= x;i++){ if(x % i == 0){ ret.push_back(i); if(x / i != i)ret.push_back(x / i); } } sort(all(ret)); return ret; } signed main(){ios_base::sync_with_stdio(false);cin.tie(0); int n; cin>>n; vector<int> A = div(n); n = A.size(); map<int,int> mp; for(int i = 0;i < n;i++)mp[A[i]] = i; set<int> dp[n]; for(int i = 0;i < n;i++){ //cout<<A[i]<<' '; for(int j = 1;j < i;j++){ if(A[i] % A[j] == 0){ int k = mp[A[i] / A[j]]; for(auto u: dp[k])dp[i].insert(u + A[j] - 1); } } dp[i].insert(A[i] - 1); } cout<<dp[n - 1].size()<<'\n'; for(auto u: dp[n - 1])cout<<u<<" "; } //GLHF :D
#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...