Cod sursa(job #487440)

Utilizator bogfodorBogdan Fodor bogfodor Data 25 septembrie 2010 11:19:28
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>

using namespace std;

int g,w;

struct gigel{
    int e;
    int c;
    double r;
}a[1005];

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

void sorteaza(){
    for(int i=0;i<g-1;i++)
        for(int j=i+1;j<g;j++)
            if(a[i].r<a[j].r){
            gigel aux=a[i];
            a[i]=a[j];
            a[j]=aux;
            }
}

void ceva(){
    sorteaza();
    int i=0,cost=0;
    while(w){
        w-=a[i].e;
        cost+=a[i].c;
        i++;
        if(i==g){
            printf("-1");
            return;
        }
    }
   printf("%d", cost);
}

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    citire();
    ceva();
    return 0;
}