Pagini recente » Cod sursa (job #1995543) | Cod sursa (job #101673) | Cod sursa (job #281964) | Cod sursa (job #2457913) | Cod sursa (job #2446628)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("energii.in");
ofstream fout("energii.out");
const int WMax = 10000, NMax = 1000, inf = 1000001;
int K[WMax + 5],e[NMax + 5],c[NMax + 5] ;
int min(int a,int b)
{
if(a<=b)return a;
else return b;
}
int main(){
int G,W;//G = nr generatoare, W = energie necesara
int i,j;
int s=inf; //solutia
fin>>G>>W;
int a,b,ii=1;
for( i = 1; i <= G; i++)
{
fin>>a>>b;
if(e[i]>W)
{
s=min(s,c[i]);
}
else
{
e[ii]=a;
c[ii]=b;
ii = ii + 1;
}
}
for(i=1;i <=WMax ;i++)
K[i]=inf;
for(i=1;i<=ii;i++)
{
for(j=WMax;j>=e[i];j--)
{
K[j]=min(c[i]+K[j-e[i]],K[j]);
}
}
for(i=W;i<=WMax;i++)
{
s=min(s,K[i]);
}
if(s!=inf)
fout<<s;
else
fout<<-1;
}