Pagini recente » Cod sursa (job #3041011) | Cod sursa (job #2125902) | Cod sursa (job #1967688) | Cod sursa (job #3269565) | Cod sursa (job #585279)
Cod sursa(job #585279)
#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[50300];
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;
if(m[x[i].eg]> x[i].cg || m[x[i].eg]==0)
m[x[i].eg]= x[i].cg;
for(int j=1;j<=w;j++)
{
if(m[j] && ((m[j+x[i].eg]>m[j+x[i].eg]+x[i].cg)|| m[j+x[i].eg]==0) && x[i].eg!=j)
m[j+x[i].eg]=m[j]+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;
}