Pagini recente » Istoria paginii runda/speed2 | Cod sursa (job #1249793) | Cod sursa (job #1727576) | Cod sursa (job #2119177) | Cod sursa (job #20326)
Cod sursa(job #20326)
#include <stdio.h>
#include <stdlib.h>
int g, w, en[1002];
float a[1002];
struct gen{
int energ, pret;
float rand;
}v[1000];
void read();
void schimb(gen &a, gen &b);
void sort();
int main(){
FILE *f=fopen("energii.out","w");
int c=0,o=1, ener=0;
read();
sort();
while(ener<w && o<g){
c+=v[o].pret;
ener+=v[o].energ;
o++;
}
if(o!=g)fprintf(f,"%d\n",c);
else fprintf(f,"-1\n");
fclose(f);
return 0;
}
/*----------------------------------------*/
void read(){
int i, energ, cost;
FILE *f=fopen("energii.in","r");
fscanf(f,"%d %d",&g,&w);
for(i=1;i<=g;i++){
fscanf(f,"%d %d",&energ, &cost);
//n[i]=energ;
//a[i]=float(energ)/float(cost);
v[i].energ=energ;
v[i].pret=cost;
v[i].rand=float(energ)/float(cost);
}
fclose(f);
}
/*----------------------------------------*/
void sort(){
int fleg=1, i;
while(fleg){
fleg=0;
for(i=1;i<=g;i++){
if(v[i].rand<v[i+1].rand){
//schimb(a[i],a[i+1]);
//schimb(en[i],en[i+1]);
schimb(v[i],v[i+1]);
fleg=1;
}
}
}
}
/*----------------------------------------*/
void schimb(gen &a, gen &b){
gen aux;
aux=a;
a=b;
b=aux;
}