Submission #944241

#TimeUsernameProblemLanguageResultExecution timeMemory
944241phoenix0423Toys (CEOI18_toy)C++17
100 / 100
1342 ms6272 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; #define fastio ios::sync_with_stdio(false), cin.tie(0) #pragma GCC optimize("Ofast") #define pb push_back #define eb emplace_back #define f first #define s second #define int long long const int maxn = 2e5 + 5; vector<int> factorize(int n){ vector<int> p; for(int i = 1; i <= sqrt(n); i++){ if(n % i == 0){ if(i != 1) p.pb(i); if(i != n / i) p.pb(n / i); } } sort(p.begin(), p.end()); return p; } signed main(void){ fastio; int n; cin>>n; vector<int> p = factorize(n); map<int, vector<int>> mp; for(auto x : p) mp[x] = factorize(x); set<int> ans; auto dfs = [&](auto dfs, int cur, int lst, int cnt) -> void{ if(cur == n){ ans.insert(cnt); return; } auto v = mp[n / cur]; int st = lower_bound(v.begin(), v.end(), lst) - v.begin(); for(int i = st; i < v.size(); i++){ dfs(dfs, cur * v[i], v[i], cnt + v[i] - 1); } }; dfs(dfs, 1, 1, 0); cout<<ans.size()<<"\n"; for(auto x : ans) cout<<x<<" "; cout<<"\n"; }

Compilation message (stderr)

toy.cpp: In lambda function:
toy.cpp:41:27: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |         for(int i = st; i < v.size(); i++){
      |                         ~~^~~~~~~~~~
toy.cpp: In instantiation of 'main()::<lambda(auto:23, long long int, long long int, long long int)> [with auto:23 = main()::<lambda(auto:23, long long int, long long int, long long int)>]':
toy.cpp:45:21:   required from here
toy.cpp:41:27: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
#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...