Cod sursa(job #2095811)

Utilizator RazvanGutaGuta Razvan Alexandru RazvanGuta Data 28 decembrie 2017 12:16:53
Problema Minim2 Scor 0
Compilator cpp Status done
Runda vacanta_11_2 Marime 0.93 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("minim2.in");
ofstream g("minim2.out");
int v[100001],n,i,sa,k,j;
double a[100001],val,record,A,B;
long double S;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i],v[i]=0,S+=a[i];
    f>>A>>B>>record;
    sort(a+1,a+n+1);
    sa=a[n];
    a[n]=a[n]*A;
    S=S-(sa-a[n]);
    v[n]=1;
    k++;
    while(S>record)
    {
        sort(a+1,a+n+1);
        if(v[n]==0)
        val=a[n]-a[n]*A,a[n]=a[n]*A;
        else
        {
            for(j=n-1;j>=1;j--)
            {
                if(v[j]==0)
                {

                    if(a[j]-a[j]*A<a[n]-a[n]*B)
                     val=a[n]-a[n]*B,a[n]=a[n]*B;
                    else
                     val=a[j]-a[j]*A,a[j]=a[j]*A,v[j]=1;
                    break;
                }
            }
        }
        S=S-val;
        k++;
    }
    g<<k;
    return 0;
}