Pagini recente » Cod sursa (job #1613960) | Cod sursa (job #2695938) | Cod sursa (job #1372664) | Cod sursa (job #1504393) | Cod sursa (job #1571598)
#include <iostream>
#include<cstdio>
struct obiecte {int g,c,p;float e;}a[100],aux;
using namespace std;
FILE * f=fopen("rucsacuri.in","r");
FILE * g=fopen("rucsacuri.out","w");
int main()
{
int n,G,cod,gr,i;
float ct;
fscanf(f,"%d %d",&n,&G);
for(i=1;i<=n;i++)
{
fscanf(f,"%d %d",&a[i].g,&a[i].c);
a[i].e=(float)(a[i].c)/(float)(a[i].g);
a[i].p=i;
}
do
{
cod=1;
for(i=1;i<=n-1;i++)
{
if(a[i].e<a[i+1].e)
{
cod=0;
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
}
}
}while(cod==0);
gr=G;
ct=0;
for(i=1;i<=n && gr>0;i++)
{
if(a[i].g<=gr)
{
gr=gr-a[i].g;
ct=ct+a[i].c;
// fprintf(g,"%d ",a[i].g);
cout<<ct<<endl;
}
else
{
ct=ct+(float)gr/(float)a[i].g*float(a[i].c);
//fprintf(g,"%d(%f) ",a[i].p,float(gr)/float(a[i].g));
cout<<ct<<endl;
gr=0;
}
}
fprintf(g,"%d",(int)ct);
return 0;
}