Pagini recente » Cod sursa (job #1313028) | Cod sursa (job #2528892) | Clasament perspicacitatea_rafturilor | Cod sursa (job #2350397) | Cod sursa (job #2966521)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
struct celula
{
int c;
int e;
} v[1005];
int a[5050];
int main()
{
int g,w;
//int s=0;
in>>g;
in>>w;
for(int i=1; i<=g; i++)
{
in>>v[i].e>>v[i].c;
// s+=v[i].e;
}
/*if(w>s)
{
cout<<-1;
return 0;
}*/
for(int i=1; i<=w; i++)
a[i]=-1;
a[0]=0;
for(int i=1; i<=g; i++)
{
for(int k=w+v[i].e; k>=v[i].e; k--)
{
if(a[k-v[i].e]!=-1)
{
if(k<w)
{
if(a[k]==-1 || a[k-v[i].e]+v[i].c<a[k])
a[k]=a[k-v[i].e]+v[i].c;
}
else
{
if(a[w]==-1 || a[k-v[i].e]+v[i].c<a[w])
a[w]=a[k-v[i].e]+v[i].c;
}
}
}
}
out<<a[w];
return 0;
}