Pagini recente » Cod sursa (job #3270250) | Cod sursa (job #105009) | Cod sursa (job #32280) | Cod sursa (job #199339) | Cod sursa (job #469675)
Cod sursa(job #469675)
#include<fstream>
#include<bitset>
#include<vector>
using namespace std;
#define nm 5001
ifstream f("energii.in");
ofstream g("energii.out");
bitset<nm+9>v[1005];
vector<long>cmin,e,ct;
int n,ec,min1,gen,energ,i,j;
int main()
{ f>>n>>ec;
e.resize(n+2,0);
ct.resize(n+2,0);
cmin.resize(nm+2,-1);
for(i=1;i<=n;i++)
f>>e[i]>>ct[i];
cmin[0]=0;
for(i=1;i<=ec;i++)
{ min1=1000000;
for(j=1;j<=n;j++)
if(i>=e[j] && !v[i-e[j]][j])
if(min1>ct[j]+cmin[i-e[j]])
min1=ct[j]+cmin[i-e[j]] , cmin[i]=min1 ,gen=j;
if(i>=e[gen])
v[i-cmin[gen]][gen]=1;
}
min1=1000000;
for(i=ec;i<nm;i++)
if(cmin[i]!=-1 && min1>cmin[i])
min1=cmin[i];
if(min1==1000000)
g<<-1;
else g<<min1;
f.close();
g.close();
return 0;
}