Pagini recente » Cod sursa (job #2691426) | Cod sursa (job #618382) | Cod sursa (job #2505337) | Cod sursa (job #2622308) | Cod sursa (job #465683)
Cod sursa(job #465683)
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
typedef struct{
long double nr,k;
} timpi;
timpi t[100001];
long double urm,total,actionari,a,b,r;
int i,n;
bool comp(timpi x,timpi y)
{
return (x.nr>y.nr);
}
int main()
{
ifstream fi("minim2.in");
ofstream fo("minim2.out");
fi>>n;
memset(t,0,sizeof(t));
for(i=1;i<=n;i++){ fi>>t[i].nr; total+=t[i].nr; }
fi>>a>>b>>r;
actionari=0;
sort(t+1,t+n+1,comp);
for(i=1;i<=n;i++)
{
total-=t[i].nr-t[i].nr*a;
t[i].nr*=a;
actionari++;
t[i].k++;
if(i<n) urm=t[i+1].nr-(t[i+1].nr*a);
if(i==n) urm=0;
while((urm<=(t[i].nr-(t[i].nr*b)))&&(total>r)&&(t[i].k<10000))
{
total-=t[i].nr-t[i].nr*b;
t[i].nr=t[i].nr*b;
actionari++;
t[i].k++;
}
if(total<=r) break;
}
fo<<actionari<<"\n";
fo.close();
return 0;
}