#include<iostream.h> #include<string.h> int f[6][501][101]; int v[6] =...{0,30,50,10,23,130}; int w[6] =...{0,3,8,2,5,20}; int c[6] =...{0,10,10,10,8,5}; int t[6] =...{0,4,5,2,3,11}; constint maxv =400; constint maxw =10; constint maxn =5; int solve(int n , int x, int y) ...{ if(f[n][x][y] >=0) return f[n][x][y]; if( n ==0|| x ==0|| y ==0) f[n][x][y] =0; else ...{ int maxi = c[n]; if(x / v[n] < maxi) maxi = x / v[n]; if(y / w[n] < maxi ) maxi = y / w[n]; for(int i =0 ; i <= maxi ; ++i) ...{ if ((solve(n-1,x- i * v[n],y - i * w[n]) + i * t[n] ) > f[n][x][y] ) f[n][x][y] = solve(n-1,x- i * v[n],y - i * w[n]) + i * t[n]; } } return f[n][x][y] ; } void main() ...{ memset(f,0xff,sizeof(f)); int ans =0; for(int x =1 ; x <= maxv ; ++x) for(int y =1 ; y <= maxw ; ++y) ...{ if( solve(5,x,y) > ans ) ans = solve(5,x,y); } cout<<ans; }