Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define MAXN 1005
- #define MAXV 1005
- int T;
- int N, V;
- int W[MAXN];
- int C[MAXN];
- int F[MAXV];
- int get_max(int a, int b) {
- return a > b ? a : b;
- }
- int main () {
- scanf ("%d", &T);
- while (T--) {
- scanf ("%d%d", &N, &V);
- for (int i=1; i<=N; ++i)
- scanf ("%d", W + i);
- for (int i=1; i<=N; ++i)
- scanf ("%d", C + i);
- memset(F, 0, sizeof (F));
- for (int i=1; i<=N; ++i)
- for (int v=V; v>=C[i]; --v)
- F[v] = get_max (F[v], F[v-C[i]] + W[i]);
- printf("%d\n", F[V]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement