Pagini recente » Cod sursa (job #1476058) | Cod sursa (job #1704306) | Cod sursa (job #1292516) | Cod sursa (job #2679217) | Cod sursa (job #2150567)
#include<fstream>
#include<algorithm>
using namespace std;
int n,G,i,j,S,c[10002],minn;
struct gen
{
int en,ct;
};
gen v[10002];
ifstream f("energii.in");
ofstream g("energii.out");
bool cmp(gen a,gen b)
{
if(a.en<b.en) return 1;
if(a.en==b.en && a.ct<b.ct) return 1;
return 0;
}
int main()
{
f>>n>>G;
for(i=1;i<=n;i++)
{
f>>v[i].en>>v[i].ct;
S+=v[i].en;
}
sort(v+1,v+n+1,cmp);
c[0]=1;
minn=2000000000;
for(i=1;i<=n;i++)
{
for(j=G-1;j>=0;j--)
{
if(c[j]!=0 && (c[j+v[i].en]==0 || (c[j+v[i].en]>c[j]+v[i].ct)))
{
c[j+v[i].en]=c[j]+v[i].ct;
if(j+v[i].en>=G && c[j+v[i].en]<minn) minn=c[j+v[i].en];
}
}
}
if(minn==2000000000)
g<<-1;
else g<<minn-1;
f.close();
g.close();
return 0;
}