Cod sursa(job #1265143)
Utilizator | Data | 16 noiembrie 2014 19:31:50 | |
---|---|---|---|
Problema | Energii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.56 kb |
#include<string.h>
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int e[8000],c[8000],d[8000];
int main() {
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
int n,i,j,sol,g;
scanf("%d",&n);
scanf("%d",&g);
for (i=1;i<=n;i++)
scanf("%d %d",&c[i],&e[i]);
for (i=1;i<=n;i++)
for (j=g-c[i];j>=0;j--){
if (d[j+c[i]]<d[j]+e[i]){
d[j+c[i]]=d[j]+e[i];
if (d[j+c[i]]>sol) sol=d[j+c[i]];
}
}
printf("%d",sol);
return 0;
}