Pagini recente » Cod sursa (job #2033526) | Cod sursa (job #2665984) | Cod sursa (job #847946) | Cod sursa (job #1950466) | Cod sursa (job #465930)
Cod sursa(job #465930)
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
fstream f("minim2.in",ios::in),g("minim2.out",ios::out);
long double A,B,P[100001],sum,R,max1,max2;
char div[100001]={0};
long int i,poz1,poz2,pasi,N;
f>>N;
sum=0;
for (i=1;i<=N;i++)
{
f>>P[i];
sum=sum+P[i];
}
f>>A>>B>>R;
pasi=0;
while (sum>=R)
{
max1=max2=0;
for (i=1;i<=N;i++)
{
if (P[i]>max1)
{
max1=P[i];
poz1=i;
}
if (P[i]>max2&&div[i]==0)
{
max2=P[i];
poz2=i;
}
}
if ((max1-max1*B)>(max2-max2*A))
{
sum=sum-P[poz1];
P[poz1]=P[poz1]*B;
sum=sum+P[poz1];
}
else
{
sum=sum-P[poz2];
P[poz2]=P[poz2]*A;
sum=sum+P[poz2];
div[poz2]=1;
}
pasi++;
}
g<<pasi;
f.close();
g.close();
}