Cod sursa(job #465930)

Utilizator DD1994Mincu Dragos DD1994 Data 25 iunie 2010 14:19:10
Problema Minim2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 1 Marime 1.07 kb
#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();
}