Cod sursa(job #487436)

Utilizator Sm3USmeu Rares Sm3U Data 25 septembrie 2010 11:12:17
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <cstdio>

using namespace std;

struct gen{

 int e;// energie;
 int c;// cantitate;
 double r;// raport e/c;
}a[1005],aux;

int g;
int v;
int cost=0;
int energie=0;


void sortare()
{
    int ok=1;
    int n=g;
    while(ok == 1)
    {
        ok = 0;
        for(int i=0;i<n-1;i++)
            if(a[i].r<a[i+1].r)
            {
                aux=a[i];
                a[i]=a[i+1];
                a[i+1]=aux;
                ok = 1;

            }
        n--;

    }

}

void citire()
{
    scanf("%d",&g);
    scanf("%d",&v);
    for(int i=0;i<g;i++)
    {
        scanf("%d %d",&a[i].e,&a[i].c);
        a[i].r= (double)a[i].e / (double)a[i].c;
    }
}

void ceva()
{
    sortare();

    for(int i=0;i<g;i++)
    {
        energie+=a[i].e;
        cost+=a[i].c;
        if(energie>= v )
            break;
    }
    if(energie >= v)
        printf("%d",cost);
    else
        printf("-1");
}

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);

    citire();
    ceva();

    return 0;
}