Pagini recente » Cod sursa (job #2722873) | Cod sursa (job #1931976) | Cod sursa (job #2691586) | Cod sursa (job #189108) | Cod sursa (job #465796)
Cod sursa(job #465796)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE*f=fopen("minim2.in","r");
FILE*g=fopen("minim2.out","w");
int i,n,nr,maxim;
float a,b,dist,dcurent,valmax;
struct minim{
float val;
float sc;
};
minim w[100005];
int cmp (minim a,minim b) {
return a.sc > b.sc;
}
int main () {
fscanf(f,"%d",&n);
for ( i = 1 ; i <= n ; ++i ){
fscanf(f,"%f",&w[i].val);
dcurent += w[i].val ;
}
fscanf(f,"%f %f %f",&a,&b,&dist);
a = 1 - a; b = 1 - b;
for ( i = 1 ; i <= n ; ++i ){
w[i].sc = w[i].val * a ;
}
//sort(w+1,w+n+1,cmp);
//front = 1;
nr = 0;
while ( dcurent >= dist ) {
maxim = 0 ; valmax = 0 ;
for ( i = 1 ; i <= n ; ++i ){
if ( w[i].sc > valmax )
valmax = w[i].sc, maxim = i ;
}
dcurent -= w[maxim].sc;
w[maxim].val -= w[maxim].sc;
w[maxim].sc = w[maxim].val * b;
++nr;
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}