Pagini recente » Cod sursa (job #856776) | Cod sursa (job #1477879) | Cod sursa (job #2816631) | Cod sursa (job #139570) | Cod sursa (job #1753644)
#include <fstream>
#define N 20001
#define M 1001
// verific evaluatorul cu un cod de 10 pct a altei persoane
using namespace std;
int main()
{
int G,W,E[M],C[M],v[N]={0},c[N]={0},i,j,l,ult;
v[0]=-1;
ifstream f("energii.in");
ofstream g("energii.out");
f>>G>>W;
for(i=1;i<=G;i++)
{
f>>E[i];
f>>C[i];
}
f.close();
ult=0;
for(i=1;i<=G;i++)
for(j=ult;j>=0;j--)
{
if(v[j+E[i]]!=0 && c[j+E[i]]>C[i])
c[j+E[i]]=C[i];
if(v[j]!=0 && v[j+E[i]]==0)
{
v[j+E[i]]=E[i];
c[j+E[i]]=c[j]+C[i];
if(j+E[i]>ult)
ult=j+E[i];
}
if(ult>=W)
if(c[W])
{ g<<c[W]; return 0;}
else
{
l=W;
while(!c[l])
l++;
g<<c[l];
return 0;
}
}
g<<-1;
g.close();
return 0;
}