Cod sursa(job #2257445)

Utilizator lucianistratiIstrati Lucian lucianistrati Data 10 octombrie 2018 08:33:34
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
using namespace std;
struct energie
{
    float E,C;
    float R;
}v[1002];
int main()
{
   ifstream fin("prim.in");
   ofstream fout("prim.out");
   float G,W,i,aux,cost=0;
   float ok;
   fin>>G>>W;
   for(i=1;i<=G;i++)
   {
        fin>>v[i].E>>v[i].C;
        v[i].R=float(v[i].C/v[i].E);
   }
   for(i=1;i<=G-1;i++)
   {for(j=i+1;j<=G;j++)
      if(v[i].R<v[j].R;
      {
          aux=v[i].C;
          v[i].C=v[j].C;
          v[j].C=aux;
          aux=v[i].E;
          v[i].E=v[j].E;
          v[j].E=aux;
          ok=v[i].R;
          v[i].R=v[j].R;
          v[j].R=ok;
      }
   }
   for(i=1;i<=G;i++)
   {
       if(W-v[i].E>=0)
       {
           cost=cost+v[i].C;
           W=W-v[i].E;   
       }
       if(W-v[i]<0)
       {
           
           cost=cost+W*v[i].R;
           W=0;
       }
       if(W==0)
       {
          fout<<cost;
          return 0;
       } 
       
   }
   fout<<-1;
   fin.close();
   fout.close();
   return 0;
}