Pagini recente » Cod sursa (job #2912747) | Cod sursa (job #617269) | Cod sursa (job #2636199) | Cod sursa (job #2688290) | Cod sursa (job #788070)
Cod sursa(job #788070)
#include <fstream>
using namespace std;
typedef struct gen
{
int putere, cost;
};
gen u[1001];
int g, w, v[50000]; //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;
}