Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #define N 105
- #define pb push_back
- using namespace std;
- int k, m, n[N];
- bool used[N];
- vector<int> dif, ans;
- int main() {
- freopen("dinner.in", "r", stdin);
- freopen("dinner.out", "w", stdout);
- cin >> k >> m;
- for (int i = 0; i < m; i++)
- cin >> n[i];
- for (int i = 1; i < m; i++)
- dif.pb(n[i - 1] / (n[i - 1] - n[i]));
- sort(dif.begin(), dif.end());
- reverse(dif.begin(), dif.end());
- bool first = false;
- while (!first) {
- first = true;
- int last = 0;
- for (int i = 0; i < dif.size(); i++) {
- if (!used[i]) {
- if (first) {
- used[i] = true;
- last = dif[i];
- first = false;
- ans.pb(dif[i]);
- }
- else {
- if (last == dif[i] + 1) {
- used[i] = true;
- last = dif[i];
- }
- }
- }
- }
- }
- int prod = 1;
- for (int i = 0; i < ans.size(); i++)
- prod *= ans[i];
- if (ans.size() < k)
- ans.pb(n[0] / prod);
- for (int i = ans.size(); i < k; i++)
- ans.pb(1);
- for (int i = 0; i < ans.size(); i++)
- cout << ans[i] << " ";
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement