Pagini recente » Cod sursa (job #376905) | Cod sursa (job #2983626) | Cod sursa (job #2104687) | Cod sursa (job #498492) | Cod sursa (job #274338)
Cod sursa(job #274338)
#include <fstream.h>
int v[1002][3];
int main ()
{int w,g,i,j,s=0,x,cost=0,cmin=100000,tr,dif;
float r[1000];
ifstream in("energii.in");
ofstream out("energii.out");
in>>g>>w;
for (i=1;i<=g;i++)
{in>>v[i][1]>>v[i][2];
r[i]=(float)v[i][1]/v[i][2];
}
for (i=2;i<=g;i++)
for (j=i;j>=1;j--)
if (r[j]<r[j-1])
{tr=r[j];
r[j]=r[j-1];
r[j-1]=tr;
tr=v[j][1];
v[j][1]=v[j-1][1];
v[j-1][1]=tr;
tr=v[j][2];
v[j][2]=v[j-1][2];
v[j-1][2]=tr;
}
//for (i=1;i<=g;i++)
// out<<v[i][1]<<" "<<v[i][2]<<" "<<r[i]<<endl;
for (i=g;i>0;i--)
{if (s<=w)
{cost=cost+v[i][2];
s=s+v[i][1];}
else
break;
}
if (s<w)
{dif=w-s;
for (i=1;i<=g;i++)
{if (v[i][1]>=dif);
if (v[i][2]<cmin)
cmin=v[i][2];
}
cost=cost+cmin;
}
if (s<w)
out<<-1;
else
out<<cost;
in.close();
out.close();
return 0;
}