Cod sursa(job #2172381)

Utilizator alin01alin catavencu alin01 Data 15 martie 2018 16:15:01
Problema Minim2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#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;
}