Cod sursa(job #1571598)

Utilizator DanDumitrescu18dandumitrescu DanDumitrescu18 Data 18 ianuarie 2016 10:51:36
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#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;
}