Cod sursa(job #341369)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 18 august 2009 12:05:38
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream.h>
#include <fstream.h>
int G,W,cost[10001],gen[10001],o[10001],i,j,schimb,Gr,x[10001],aux;
ifstream f("energii.in");
ofstream g("energii.out");

void rezolva()
{
     for (i=0,Gr=W;i<G && Gr>gen[o[i]];i++)
         {
         x[o[i]]=1;
         Gr-=gen[o[i]];
         }
}

void afiseaza()
{
     for (int i=0;i<G;i++)
         if (x[i]) g<<i+1<<" "<<x[i]*100<<endl;
}

int main()
{
    f>>G;
    f>>W;
    for (i=0;i<G;i++)
        {
        o[i]=i;
        f>>gen[i];
        f>>cost[i];
        }
   
   
   cout<<"G="<<G<<endl;
   cout<<"W="<<W<<endl;
   cout<<"generatoare:";
   for (i=0;i<G;i++)
       cout<<gen[i]<<" ";
    cout<<endl<<"costuri: ";
    for (i=0;i<G;i++)
        cout<<cost[i];
    for (i=0;i<G-1;i++)
        {
        do
          {
          schimb=0;
          if (gen[o[i]]/cost[o[i]]<gen[o[i+1]]/cost[o[i+1]])
             {
             aux=o[i];
             o[i]=o[i+1];
             o[i+1]=aux;
             }
          }
        while (schimb);
        }
    rezolva();
    afiseaza();
    return 0;
}