kdzhr

Калькулятор/перебор

Mar 1st, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. // 26 points Calculator region first tour 16-17 https://informatics.mccme.ru/mod/statements/view3.php?id=24702&chapterid=113440#
  2.  
  3. # include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. void search(size_t n, size_t a, size_t b, size_t c, size_t &max_ans) {
  8.     if ((a + b + c) == 0 || n == 0) {
  9.         max_ans = min(max_ans, n);
  10.     } else {
  11.         if (a > 0) {
  12.             search(n / 2, a - 1, b, c, max_ans);
  13.         }
  14.         if (b > 0) {
  15.             search((n + 1) / 2, a, b - 1, c, max_ans);
  16.         }
  17.         if (c > 0) {
  18.             search(max(static_cast<size_t> (0), (n - 1) / 2), a, b, c - 1, max_ans);
  19.         }
  20.     }
  21. }
  22. int main() {
  23.     size_t n, a, b, c;
  24.     cin >> n >> a >> b >> c;
  25.     size_t ans = n;
  26.     search(n, a, b, c, ans);
  27.     cout << ans;
  28.     return 0;
  29. }
Add Comment
Please, Sign In to add comment