Pagini recente » Cod sursa (job #1473473) | Cod sursa (job #282071) | Cod sursa (job #716224) | Cod sursa (job #1581895) | Cod sursa (job #1121616)
#include <fstream>
#include <cstdio>
using namespace std;
FILE *f = fopen("energii.in", "r");
ofstream G("energii.out");
int g,w,e[1002],c[1002],sol[1002],it,ln;
float rap[1002],maxi=1;
int main()
{
fscanf(f,"%d%d",&g,&w);
for(int i=1;i<=g;i++)
{
fscanf(f,"%d%d",&e[i],&c[i]);
rap[i]=(float)e[i]/(float)c[i];
}
int total=0;
do{
maxi=0;
for(int i=1;i<=g;i++)
{
if(rap[i]>maxi){ it=i; maxi=rap[i];}
}
if(maxi>0){
sol[++ln]=it;
rap[it]=0;
total+=e[it];}
}while(total<w&&maxi!=0);
int dif = total-w;
for(int i=g;i>0;i--)
if(sol[i]<dif){ sol[i]=0; dif-=e[i];}
int cost=0;
for(int i=1;i<=ln;i++) cost+=c[sol[i]];
G<<cost;
return 0;
}