Pagini recente » Istoria paginii runda/ccex-2013-clasa-a-10-a | Istoria paginii utilizator/nanopico | Istoria paginii utilizator/carm3n | Diferente pentru utilizator/rodik_rody intre reviziile 62 si 31 | Cod sursa (job #87943)
Cod sursa(job #87943)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct gen{
int e,c;
};
gen x[1001];
int cost[8000],g,w;
void dinamic(int j){
int i;
for(i=w;i>=0;--i)
if(cost[i] && cost[i]+x[j].c>cost[i+x[j].e])
cost[x[j].e+i]=cost[i]+x[j].c;
}
int main(){
FILE*in=fopen("energii.in","r");
FILE*out=fopen("energii.out","w");
int i,s=0;
fscanf(in,"%d %d",&g,&w);
for(i=0;i<g;i++){
fscanf(in,"%d %d",&x[i].e,&x[i].c);
s+=x[i].e;
}
if(s<w){
fprintf(out,"-1\n");
return 0;
fclose(in);
fclose(out);
}
cost[0]=1;
for(i=0;i<g;++i)
dinamic(i);
s=100000000;
for(i=w;i<7000;++i){
if(cost[i] && cost[i]<s)
s=cost[i];
}
fprintf(out,"%d\n",s-1);
fclose(in);
fclose(out);
return 0;
}