Pagini recente » Cod sursa (job #1777273) | Cod sursa (job #2866140) | Cod sursa (job #1381301) | Cod sursa (job #2197386) | Cod sursa (job #788069)
Cod sursa(job #788069)
#include <fstream>
using namespace std;
typedef struct gen
{
int putere, cost;
};
gen u[1001];
int g, w, v[5001]; //v[i] = energia maxima obtinuta cu i generatoare
int main()
{
int i, j, s=0;
ifstream in("energii.in");
ofstream out("energii.out");
in>>g>>w;
for(i=0;i<g;i++)
{
in>>u[i].putere>>u[i].cost;
s+=u[i].cost;
}
for(i=0;i<g;i++)
{
for(j=s;j>0;j--)
if(v[j] && v[j+u[i].cost]<v[j]+u[i].putere)
v[j+u[i].cost]=v[j]+u[i].putere;
if(v[u[i].cost]<u[i].putere)
v[u[i].cost]=u[i].putere;
}
for(i=1;i<=s && v[i]<w;i++)
continue;
if(i>s)
out<<"-1";
else
out<<i;
in.close();
out.close();
return 0;
}