Pagini recente » Cod sursa (job #1365133) | Cod sursa (job #714700) | Cod sursa (job #2834917) | Cod sursa (job #772696) | Cod sursa (job #1427004)
#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;
}