Cod sursa(job #2661629)

Utilizator martinmiere133Cranga Antonio martinmiere133 Data 22 octombrie 2020 13:46:17
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <math.h>
#include <vector>
#include <queue>
#include <stack>
#include <list>
#include <iomanip>
#include <stdlib.h>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
struct ss
{
    int cost;
    int energie;
    double ratie;
}x[1002];
bool compara(ss& a , ss& b)
{
    if(a.ratie > b.ratie)return 0;
    else if(a.ratie == b.ratie)return a.energie > b.energie;
    return 1;
}
int main()
{
    int n;
    int cost_maxim;
    f>>n>>cost_maxim;
    for(int i=1;i<=n;i++)
    {
        int a , b;
        f>>a>>b;
        x[i].cost = b;
        x[i].energie = a;
        x[i].ratie = b/a;
    }
    sort(x+1, x+1+n, compara);
    int suma =0 ;
    int i = 1;
    while(cost_maxim > 0)
    {
        suma+=x[i].cost;
        cost_maxim-=x[i].energie;
    }
    g<<suma;
}