Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int max(int a, int b)
- {
- return (a > b)? a : b;
- }
- int main ()
- {
- int n,value[100],wt[100];
- int w,i,x,j,s;
- scanf("%d",&n);
- for(int i = 0;i<n;++i)
- {
- scanf("%d",&wt[i]);
- }
- for (int i= 0;i<n;++i){
- scanf("%d",&value[i]);
- }
- scanf("%d",&x);
- for(i=0;i<x;i++){
- scanf("%d",&w);
- int p[n+1][w+1];
- for (i = 0; i <= n; i++){
- for (j = 0; j <= w; j++)
- {
- if (i==0 || j==0)
- p[i][j] = 0;
- else if (wt[i-1] <= j)
- p[i][j] = max(value[i-1] + p[i-1][j-wt[i-1]], p[i-1][j]);
- else
- p[i][j] = p[i-1][j];
- }
- }
- printf ("%d \n",p[n][w]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement