Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 26 points Calculator region first tour 16-17 https://informatics.mccme.ru/mod/statements/view3.php?id=24702&chapterid=113440#
- # include <iostream>
- using namespace std;
- void search(size_t n, size_t a, size_t b, size_t c, size_t &max_ans) {
- if ((a + b + c) == 0 || n == 0) {
- max_ans = min(max_ans, n);
- } else {
- if (a > 0) {
- search(n / 2, a - 1, b, c, max_ans);
- }
- if (b > 0) {
- search((n + 1) / 2, a, b - 1, c, max_ans);
- }
- if (c > 0) {
- search(max(static_cast<size_t> (0), (n - 1) / 2), a, b, c - 1, max_ans);
- }
- }
- }
- int main() {
- size_t n, a, b, c;
- cin >> n >> a >> b >> c;
- size_t ans = n;
- search(n, a, b, c, ans);
- cout << ans;
- return 0;
- }
Add Comment
Please, Sign In to add comment