Cod sursa(job #2762612)
| Utilizator | Data | 8 iulie 2021 19:35:49 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<string.h>
#include<stdio.h>
int N, G;
int w[10000], p[10000];
int a[10000];
int main() {
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
scanf("%d %d", &N, &G);
for (int i = 1; i <= N; i++)
{
scanf("%d %d", &w[i], &p[i]);
}
a[0] = 0; int ans = 0;
for( int i = 1; i <= N; i++)
for( int j = G - w[i]; j >= 0; j--)
{
if( a[j+w[i]] < a[j] + p[i] )
{
a[j+w[i]] = a[j] + p[i];
if (a[j+w[i]] > ans)
ans = a[j+w[i]];
}
}
printf("%d", ans);
return 0;
}