Pagini recente » Cod sursa (job #1912210) | Cod sursa (job #1142388) | Cod sursa (job #2817996) | Cod sursa (job #2412738) | Cod sursa (job #612050)
Cod sursa(job #612050)
#include <iostream>
#include <fstream>
using namespace std;
long int nr[1001];
long double raport[1001];
void sort(int i , int j , int n)
{
double aux;
if( raport[i] < raport[j] )
{
aux = raport[i];
raport[i] = raport [j] ;
raport[j] = aux ;
aux = nr[i];
nr[i] = nr[j];
nr[j] = aux;
}
if( i < n)
{
if( j == n )
sort( i + 1 , i + 2 , n );
else
sort( i , j + 1 , n);
}
}
int main()
{
int g , need , i , j , cost = 0 , v[ 1001 ] ;
fstream f("energii.in",ios::in);
fstream z("energii.out",ios::out);
f>>g ;
f>>need;
for( i = 1 ; i <= 2 * g ; i ++ )
f>>v[ i ] ;
for( j = 1 ; j <= g ; j++ )
raport[j] =(float) v[j * 2 - 1] / v[ j * 2 ] ;
for( j = 1 ; j <= g ; j++ )
nr[j] = j;
sort(1 , 2 , g);
for( i = 1 ; i < g*2 ; i++ )
{
if( need > 0 )
{
need -= v[nr[i ]*2 - 1] ;
cost += v[nr[i ]*2 ];
}
else
i = g*2;
}
if(need > 0)
z<<"-1";
else
z<<cost;
f.close();
z.close();
return 0;
}