Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/white_tiger_radu | Istoria paginii utilizator/l3gend | Istoria paginii utilizator/mestefy | Cod sursa (job #2023477)
#include <stdio.h>
using namespace std;
struct obiect{
int pro, con;
};
obiect c[1002];
int sume[100002];
int main()
{
FILE *in, *out;
in = fopen("energii.in", "r");
out = fopen("energii.out", "w");
obiect ob;
int g, w;
fscanf(in, "%d%d", &g, &w);
for(int i=0; i<g; i++){
fscanf(in, "%d%d", &ob.pro, &ob.con);
c[i]=ob;
}
for(int i=0; i<g; i++){
for(int j=100001; j>=c[i].pro; j--){
if((sume[j-c[i].pro]!=0 || j-c[i].pro==0) && (sume[j-c[i].pro]+c[i].con<sume[j] || sume[j]==0))
sume[j]=sume[j-c[i].pro]+c[i].con;
}
}
int mini=1000000;
for(int i=w; i<=100001; i++){
if(sume[i]!=0 && sume[i]<mini){
mini=sume[i];
}
}
fprintf(out, "%d", mini);
return 0;
}