Pagini recente » Cod sursa (job #2539559) | Cod sursa (job #485656) | Cod sursa (job #233310) | Cod sursa (job #2791500) | Cod sursa (job #902909)
Cod sursa(job #902909)
#include <cstdio>
#include<algorithm>
#include<vector>
#define INF 1000000000
#define nmax 1001
#define Wmax 5000
using namespace std;
FILE*f=fopen("energii.in","r");
FILE* g=fopen("energii.out","w");
vector <int> D(10001);
int n,w;
int total_power;
void knapsack();
int main()
{
fscanf(f,"%d %d",&n,&w);
knapsack();
fclose(f);
fclose(g);
return 0;
}
void knapsack()
{
int current,j,power,cost;
D[0]=-1;
for(current=1;current<=n;++current)
{
fscanf(f,"%d%d",&power,&cost);
for(j=w;j>=0;--j)
if(D[j])
if(!D[j+power] || D[j]+cost<D[j+power])
D[j+power]=D[j]+cost;
}
int min=INF;
for(j=w;j<=10001;++j)
if(D[j] &&D[j]<min)
min=D[j];
if(min==INF)
fprintf(g,"%d",-1);
else
fprintf(g,"%d",min+1);
}