Pagini recente » Cod sursa (job #1174508) | Cod sursa (job #2648256) | Cod sursa (job #146708) | Cod sursa (job #1561338) | Cod sursa (job #788072)
Cod sursa(job #788072)
#include <fstream>
using namespace std;
typedef struct gen
{
int putere, cost;
};
gen u[1001];
int g, w, v[400000]; //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;
}