Submission #1154878

#TimeUsernameProblemLanguageResultExecution timeMemory
1154878mutseToys (CEOI18_toy)C++20
0 / 100
0 ms528 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; int n; map<int, bool> ittakotoaru; vector<int> ans; int f(priority_queue<int> q){ int ans = 0; while(!q.empty()){ ans += q.top() - 1; q.pop(); } return ans; } void printq(priority_queue<int> q){ while(!q.empty()){ cout << q.top() << ' '; q.pop(); } cout << '\n'; } void bfs(){ queue<priority_queue<int>> q; priority_queue<int> tmp; tmp.push(n); q.push(tmp); while(!q.empty()){ priority_queue<int> smallq = q.front(); q.pop(); // cout << "pop: "; // printq(smallq); ans.push_back(f(smallq)); int qfront = smallq.top(); // cout << "now working on: " << qfront << '\n'; smallq.pop(); for(int j = 2; j <= sqrt(qfront); ++j){ priority_queue<int> newq = smallq; if(qfront % j == 0){ newq.push(j); newq.push(qfront / j); if(!ittakotoaru[f(newq)]){ // cout << "factorized " << qfront << " into " << j << ' ' << qfront / j << '\n'; // cout << "push: "; // printq(newq); ittakotoaru[f(newq)] = 1; q.push(newq); } } } } } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; bfs(); sort(ans.begin(), ans.end()); cout << ans.size() << '\n'; for(auto 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...