func_code_string: #include <bits/stdc++.h>   using namespace std;   void itval(istream_iterator<string> it) {}   template <typename T, typename... Args>   void itval(istream_iterator<string> it, T a, Args... args) {     cerr << *it <<   =   << a << endl;     itval(++it, args...);   }   const long long int MOD = 1e9 + 7;   template <typename T>   inline void print(T x) {     cout << x <<   n ;   }   template <typename T>   inline void printvec(T x) {     for (auto a : x) cout << a <<    ;     cout <<   n ;   }   struct custom {     bool operator()(const pair<long long int, long long int> &p1,                     const pair<long long int, long long int> &p2) const {       return p1.first < p2.first;     }   };   long long int get_pow(long long int a, long long int b, long long int M = MOD) {     long long int res = 1;     while (b) {       if (b & 1) res = (res * a) % M;       a = (a * a) % M;       b >>= 1;     }     return res;   }   const long long int N = 2e5 + 5, inf = 4e18, M = 302;   void solve() {     long long int c, p, q, a, b;     cin >> c >> p >> q >> a >> b;     long long int x = c / a;     long long int ans = 0;     for (long long int i = (long long int)max(0ll, x - 10000);          i < (long long int)(x + 10000); i++) {       if (i * a <= c) {         ans = max(ans, i * p + ((c - i * a) / b) * q);       } else         break;     }     long long int y = c / b;     for (long long int i = (long long int)max(0ll, y - 10000);          i < (long long int)(y + 10000); i++) {       if (i * b <= c) {         ans = max(ans, i * q + ((c - i * b) / a) * p);       } else         break;     }     if (p * b == q * a) {       long long int x = c / a / 2;       for (long long int i = (long long int)max(0ll, x - 10000);            i < (long long int)(x + 10000); i++) {         if (i * a <= c) {           ans = max(ans, i * p + ((c - i * a) / b) * q);         } else           break;       }       long long int y = c / b / 2;       for (long long int i = (long long int)max(0ll, y - 10000);            i < (long long int)(y + 10000); i++) {         if (i * b <= c) {           ans = max(ans, i * q + ((c - i * b) / a) * p);         } else           break;       }     }     cout << ans <<   n ;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     int test = 1;     clock_t z = clock();     for (long long int tes = (long long int)0; tes < (long long int)(test);          tes++) {       solve();     }     fprintf(stderr,  Total Time:%.4f n , (double)(clock() - z) / CLOCKS_PER_SEC),         fflush(stderr);     return 0;   }   