Pagini recente » Cod sursa (job #2567338) | Cod sursa (job #927052) | Borderou de evaluare (job #1796773) | Cod sursa (job #3158221) | Cod sursa (job #2172381)
#include <iostream>
#include <fstream>
using namespace std;
int i,n,k,ok,nra;
float a[100005],max1,A,B,sum,inm[100005],rec,x;
int main()
{
freopen("minim2.in","r",stdin);
freopen("minim2.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%f",&a[i]);
sum+=a[i];
//inm[i]=A;
}
//cout<<a[n]<<" ";
scanf("%f%f%f",&A,&B,&rec);
//cout<<A<<" "<<B<<" "<<rec;
for(i=1;i<=n;i++)
{
inm[i]=A;
//cout<<inm[i];
}
if(sum<rec)
printf("%d",0);
else
{
//sort(a+1,a+n+1,acompare);
ok=1;
while(ok)
{
max1=0.0f;
for(i=1;i<=n;i++)
{
x=a[i]-(float)a[i]*inm[i];
if(x>max1)
{
max1=x;
k=i;
}
}
//cout<<max1<<" ";
sum-=a[k];
a[k]*=inm[k];
if(inm[k]==A)
inm[k]=B;
sum+=a[k];
nra++;
if(sum<rec)
ok=0;
}
printf("%d",nra);
}
return 0;
}