Pagini recente » Cod sursa (job #2027903) | Cod sursa (job #523161) | Cod sursa (job #151999) | Cod sursa (job #3228917) | Cod sursa (job #465762)
Cod sursa(job #465762)
#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
using namespace std;
int main()
{
FILE *fin=fopen("minim2.in","r");
FILE *fout=fopen("minim2.out","w"); // for debugging
int n;
float v[100003];
float a,b,record,timp=0;
fscanf(fin,"%d",&n);
for ( register int i=0;i!=n;++i )
{
fscanf(fin,"%f",&v[i]);
timp+=v[i];
}
fscanf(fin,"%f %f %f",&a,&b,&record);
sort(v,v+n);
int k=n-1;
int count=0;
float x=a;
int actions=0;
while(timp>record || (timp-record)>=0.000001)
{
if( v[k]-(v[k]*x) < v[k-1]-(v[k-1]*a) )
{
--k;
count=0;
x=a;
}
else if(++count==10000)
{
count=0;
--k;
x=a;
}
float tmp=v[k];
v[k]*=x;
x=b;
timp-=(tmp-v[k]);
++actions;
}
fprintf(fout,"%d\n",actions);
fclose(fout);
return 0;
}