Cod sursa(job #1427004)

Utilizator andreigeluAndrei Gelu andreigelu Data 1 mai 2015 12:00:42
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.45 kb
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;
int  m ,w;
int s=0 ;
int s1=0;
 pair<int, int > v[1001];
void afisare(int k);
void prelucrare();
void testare ()
{
    ofstream g("energii.out");
    int s =0 ;
    for ( int i = 0 ; i < m ; i++ )
       {

      s=s+v[i].first;
    }
    if(s<w)
    {
        afisare(0);
    }
}
void citire ()
{
    ifstream f ("energii.in");
    f>>m;
    f>> w;
    for ( int i = 0 ; i < m ; i++ )
       {

      f>> v[i].first>>v[i].second;
       }
       testare();

}


void afisare (int k=1)
{
    ofstream g ("energii.out");
    if (k==0)
    {
        g<<-1;
        return;
    }
    for ( int i = 0 ; i < m ; i++ )
       {

        g<< v[i].first<<" "<<v[i].second<<endl;
        }

        g<<s1;


       }

void prelucrare ()
{
    ofstream g ( "energii.out");
  int s4=0;
  for(int i=0 ; i < m ; i++ )
    {
        s4=s4+v[i].first;
    }
    if(s4<w)
    {
        afisare(0);
        return;
    }
   for(int i = 0; i< m ;i ++ )
   {
      for (int j = i +1 ; j <m-1; j ++ )
      {
          if ((v[i].first/v[i].second)<(v[j].first/v[i].second))
              {
                  swap(v[i],v[j]);
              }
      }
   }


       for ( int i = 0 ; s >= w ; i++ )
   {
       s= s + v[i].first;
       s1= s1 + v[i].second;
   }




}


int main()
{
    citire();
    afisare();
    return 0;
}