Pagini recente » Cod sursa (job #802930) | Cod sursa (job #1412434) | Cod sursa (job #1889458) | Cod sursa (job #2107884) | Cod sursa (job #469983)
Cod sursa(job #469983)
#include<fstream>
#include<bitset>
#include<vector>
using namespace std;
#define nm 5001
#define min(x,y) ((x)<(y)?(x):(y))
ifstream f("energii.in");
ofstream g("energii.out");
vector<int>e,ct;
int map[1002][nm+1];
int n,ec,min1,i,j;
int main()
{ f>>n>>ec;
e.resize(n+2,0);
ct.resize(n+2,0);
for(i=1;i<=n;i++)
f>>e[i]>>ct[i];
for(j=1;j<=ec;j++)
map[0][j]=500000;
min1=500000;
for(i=1;i<=n;i++)
for(j=1;j<=nm;j++)
{ if(map[i-1][j]!=0)
map[i][j]=min(map[i-1][j],map[i-1][j-e[i]]+ct[i]);
else
if(j-e[i]>=0 && map[i-1][j-e[i]]!=0)
map[i][j]=map[i-1][j-e[i]]+ct[i];
}
for(i=1;i<=n;i++)
for(j=ec;j<=ec+50;j++)
if(min1>map[i][j]&&map[i][j]!=0&&map[i][j]!=500000)
min1=map[i][j];
if(min1!=500000)
g<<min1;
else g<<-1;
f.close();
g.close();
return 0;
}