Pagini recente » Cod sursa (job #442288) | Cod sursa (job #3247896) | Cod sursa (job #570491) | Cod sursa (job #3169373) | Cod sursa (job #428641)
Cod sursa(job #428641)
#include<fstream.h>
int main ()
{
ifstream fcin("energii.in");
ofstream fcout("energii.out");
int n,m,i,s=0,s2=0,aux,j,j2=0,max=1,energie[1002]={0},cost[1002]={0};
float raport[1002]={0};
fcin>>n>>m;
for(i=1;i<=n;i++)
{fcin>>energie[i]>>cost[i];
raport[i]=(float)energie[i]/(float)cost[i];}
for(i=2;i<=n;i++)
{
if(raport[i]>raport[i-1]&&i>1){aux=raport[i];raport[i]=raport[i-1];raport[i-1]=aux;
aux=energie[i];energie[i]=energie[i-1];energie[i-1]=aux;
aux=cost[i];cost[i]=cost[i-1];cost[i-1]=aux;i=i-2;}
}
i=1;
while(s<m)
{s=s+energie[i];s2=s2+cost[i];i++;if(i==n+2){s2=-1;break;}}
while(s>m&&max!=0){max=0;
for(j=1;j<=i-1;j++)
if(energie[j]<=s-m&&energie[j]>max){max=energie[j];j2=j;}
s2=s2-cost[j2];energie[j2]=0;cost[j2]=0;}
fcout<<s2<<'\n';
return 0;
}