Pagini recente » Cod sursa (job #2199012) | Cod sursa (job #877499) | Cod sursa (job #1603707) | Cod sursa (job #2520663) | Cod sursa (job #1350075)
#include <iostream>
#include <stdio.h>
using namespace std;
const int MAX=99999999;
struct generator{int c,p;}g[1002];
int n,k,sol[10005];
void citire(){
FILE *in;
in=fopen("energii.in","r");
fscanf(in,"%d%d",&n,&k);
for(int i=1;i<=n;i++) fscanf(in,"%d%d",&g[i].p,&g[i].c);
}
void rez(){
for(int i=1;i<=2*k;i++) sol[i]=MAX;
sol[0]=0;
for(int i=1;i<=n;i++){
for(int j=2*k-g[i].p;j>=0;j--){
if(sol[j]!=MAX&&sol[j]+g[i].c<sol[j+g[i].p])
sol[j+g[i].p]=sol[j]+g[i].c;
}
}
}
void afisare(){
FILE*out;
int minim=MAX;
for(int i=1;i<=2*k;i++)
if(sol[i]<minim&& i>=k && sol[i]!=MAX ){
minim=sol[i];
}
out=fopen("energii.out","w");
if(minim!=MAX) fprintf(out,"%d",minim);
else fprintf(out,"%d",-1);
}
int main()
{
citire();
rez();
afisare();
return 0;
}