Pagini recente » Cod sursa (job #536621) | Cod sursa (job #1377156) | Cod sursa (job #1778739) | Cod sursa (job #711924) | Cod sursa (job #2445474)
#include <fstream>
#define min(A,B) (A>B)?(B):(A)
#define change(A) (A%2==1)?0:1
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct ceva
{
int cost,energie;
}v[1010];
int g,w;
int din[2][5010];
int main()
{
fin>>g>>w;
for(int i=1;i<=g;i++)
{
fin>>v[i].energie>>v[i].cost;
}
for(int i=1;i<=g;i++)
{
for(int j=0;j<=w;j++)
{
if(j>=w)din[i%2][j]=0;
else if(i==1)din[i%2][j]=1000000000;
else din[i%2][j]=min(v[i].cost+din[1-i%2][min(j+v[i].energie,w)],din[1-i%2][j]);
}
}
if(din[g%2][0]==1000000000)fout<<-1;
else fout<<din[g%2][0];
return 0;
}