Pagini recente » Cod sursa (job #2895973) | Cod sursa (job #2085078) | Cod sursa (job #2623710) | Cod sursa (job #229474) | Cod sursa (job #220575)
Cod sursa(job #220575)
#include<fstream>
using namespace std;
const int n=10050;
int g,w,e[n],c[n],v[n];
void citire ()
{
ifstream in ("energii.in");
in>>g;
in>>w;
for(int i=1;i<=g;i++)
in>>e[i]>>c[i];
in.close ();
}
int calcul ()
{
int i,j;
v[0]=1;
for(i=1;i<=g;i++)
{
if(e[i]>=w)
if(c[i]<v[w] || v[w]==0)
v[w]=c[i];
else;
else
{
for(j=w;j>=1;j--)
if(v[j])
{
if(j+e[i]<w && (v[j]+c[i]<v[j+e[i]] || v[j+e[i]]==0))
v[j+e[i]]=v[j]+c[i];
if(j+e[i]>=w && (v[j]+c[i]<v[w] || v[w]==0))
v[w]=v[j]+c[i];
}
if(c[i]<v[e[i]] || v[e[i]]==0)
v[e[i]]=c[i];
}
}
if(v[w]==0)
return -1;
return v[w];
}
int main ()
{
citire ();
ofstream out("energii.out");
out<<calcul();
out.close ();
return 0;
}