func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m, c0, d0, hsl;   int a[15], b[15], c[15], d[15];   int dp[1005][15];   bool dpf[1005][15];   int proc(int x, int num) {     if (num == 0) {       return 0;     } else if (dpf[x][num]) {       return dp[x][num];     } else {       int &ret = dp[x][num];       ret = 0;       dpf[x][num] = true;       for (int i = 0; (i <= (a[num] / b[num])) && (x >= c[num] * i); i++) {         ret = max(ret, proc(x - c[num] * i, num - 1) + d[num] * i);       }       return ret;     }   }   int main() {     scanf( %d %d %d %d , &n, &m, &c0, &d0);     for (int i = 1; i <= m; i++) {       scanf( %d %d %d %d , &a[i], &b[i], &c[i], &d[i]);     }     hsl = 0;     for (int i = 0; i <= n; i++) {       hsl = max(hsl, proc(i, m) + ((n - i) / c0) * d0);     }     printf( %d n , hsl);   }   