Advertisement
mfgnik

Untitled

Jul 31st, 2020
1,614
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <functional>
  3. #include <algorithm>
  4. #include <vector>
  5.  
  6. int main() {
  7.     int pages_amount, book_size;
  8.  
  9.     std::cin >> pages_amount;
  10.     std::vector<int> pages(pages_amount);
  11.    
  12.     for (int & page : pages) {
  13.         std::cin >> page;
  14.     }
  15.     std::cin >> book_size;
  16.  
  17.     int ub = *std::max_element(pages.begin(), pages.end());
  18.     std::vector<int> vol(book_size);
  19.     std::function<bool(int, int)> foo = [&](int p, int q) {
  20.         for (; p >= q && vol[q] + pages[p] <= ub; --p) vol[q] += pages[p];
  21.         return !q ? p < q : foo(p, q - 1);
  22.     };
  23.     for (; !foo(pages_amount - 1, book_size - 1); ++ub) {
  24.         vol.assign(book_size, 0);
  25.     }
  26.     std::cout << *std::max_element(vol.begin(), vol.end());
  27.  
  28.     return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement