Pagini recente » Cod sursa (job #362514) | Cod sursa (job #2069602) | Cod sursa (job #1354503) | Cod sursa (job #2466799) | Cod sursa (job #884688)
Cod sursa(job #884688)
#include<fstream>
#include<cstdio>
#define inf 20000005
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct{int e;int c;
}t[2005];
int g,w,eg[1001],cg[1001],s,i,j,minim,a[2][5002];
int main()
{
minim=inf;
fin>>g>>w;
for(i=1;i<=g;i++)
fin>>eg[i]>>cg[i];
for(i=1;i<=g;i++)
s+=eg[i];
if(s<w)
fout<<-1;
else
{
a[1][eg[1]]=cg[1];
for(i=2;i<=g;i++)
for(j=1;j<=w;j++)
if(a[(i-1)%2][j]!=0)
if(eg[i]+j<w)
if(a[i%2][eg[i]+j]!=0)
a[i%2][eg[i]+j]=a[(i-1)%2][eg[i]+j]>a[(i-1)%2][j]+cg[i]?a[(i-1)%2][j]+cg[i]:a[(i-1)%2][eg[i]+j];
else
a[i%2][eg[i]+j]=a[(i-1)%2][j]+cg[i];
else
if(a[i%2][j]+cg[i]<minim)
minim=a[i%2][j]+cg[i];
fout<<minim;
}
return 0;
}