Cod sursa(job #343088)

Utilizator LeocruxRadu Romaniuc Leocrux Data 24 august 2009 23:04:39
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
using namespace std;
double gen[1001][3], n,w;
int rezolva(){
    int g=0,p=0;
    double max=0,aux=0,auxi=0,maxi=0;
    for(int i=1;i<=n;i++){
            if(gen[i][0]==-1){if(gen[i][1]==w) {auxi=gen[i][1]; if(maxi<auxi) maxi=auxi;p=i;}
                              aux=gen[i][1]/gen[i][2];
                              if(max<aux){ max=aux;g=i; }
                              };
            
            }
    if(p!=0&&gen[p][2]<gen[g][2])return p;
    return g;
    }

int main(){
    int h=0,x=0;
    
    double eng=0,cost=0;
    ifstream in("energii.in");
    in>>n;in>>w;
    for(int i=1;i<=n;i++){gen[i][0]=-1;in>>gen[i][1];in>>gen[i][2];} in.close();
    
    do{
       h=rezolva();
       eng+=gen[h][1];
       cost+=gen[h][2];
       gen[h][0]=9;
       x++;
       if(x>n){cost=-1;break;}
    }while(eng<w);
    
    ofstream out("energii.out");
    out<<cost;
    out.close();
    return 0;    
}