Pagini recente » Cod sursa (job #1967322) | Cod sursa (job #1200333) | Cod sursa (job #2658237) | Cod sursa (job #98074) | Cod sursa (job #585299)
Cod sursa(job #585299)
#include <fstream>
using namespace std;
fstream f("energii.in",ios::in),g("energii.out",ios::out);
int gx,w;
struct gen{
unsigned long eg,cg;
};
gen x[10200];
int m[1000000];
long k=0;
int main()
{
f>>gx;
f>>w;
unsigned long min;
long s=0;
for(int i=0;i<gx;i++)
{
f>>x[i].eg>>x[i].cg;
s+=x[i].eg;
for(int j=1;j<=w;++j)
{
if(m[j] && ((m[j+x[i].eg]>m[j]+x[i].cg)|| m[j+x[i].eg]==0))
m[j+x[i].eg]=m[j]+x[i].cg;
}
if(m[x[i].eg]> x[i].cg || m[x[i].eg]==0)
m[x[i].eg]= x[i].cg;
}
if (s<w){
g<<-1; return 0;
}
min=m[s];
for(int i=w+1;i<=s;i++)
{
if (m[i]<min && m[i]!=0)
min=m[i];
}
g<<min;
return 0;
}