Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- int k, n;
- cin >> k >> n;
- vector<pair<int, int>> a(n);
- for (int i = 0; i < n; ++i) {
- cin >> a[i].first;
- a[i].second = (1 << i);
- }
- while (a.back().second > k) {
- a.erase(a.end() - 1);
- }
- for (int i = 1; i < a.size();) {
- if (a[i - 1].first * a[i].second / a[i - 1].second < a[i].first) {
- a.erase(a.begin() + i);
- i--;
- }
- i++;
- }
- int ans = 0;
- for (int i = a.size() - 1; i >= 0; --i) {
- if (k <= 0) break;
- ans += (k / a[i].second) * a[i].first;
- k -= (k / a[i].second) * a[i].second;
- }
- if (k > 0) {
- ans += k;
- }
- cout << ans;
- //system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement