POJ2063-Investment
http://poj.org/problem?id=2063
#include<cstdio> #include<algorithm> using namespace std; int dp[1000000],w[11],v[11],sum,n,y; int main(void) { int t,i,j,V; scanf("%d",&t); while(t--) { scanf("%d%d",&sum,&y); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d%d",&w[i],&v[i]); w[i]/=1000; } while(y--) { V=sum/1000; for(i=0;i<=V;i++) dp[i]=0; for(i=0;i<n;i++) for(j=w[i];j<=V;j++) dp[j]=max(dp[j],dp[j-w[i]]+v[i]); sum+=dp[V]; } printf("%d\n",sum); } return 0; }