Cod sursa(job #1005684)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 5 octombrie 2013 15:06:17
Problema Secventa 3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <iomanip>

#define maxn 30001

using namespace std;


ifstream fin("secv3.in");
ofstream fout("secv3.out");


int v[maxn],t[maxn],n,sv,st,ll,s,l,u;
double current;

int main()
{
    fin>>n>>l>>u;

    for (int i=1; i<=n; ++i)
    {
        fin>>v[i];
        sv += v[i];
    }

    for (int i=1; i<=n; ++i)
    {
        fin>>t[i];
        st += t[i];
    }

    current = double(sv)/double(st);

    s=1,ll=n;

    for (int k=1; k<=n-l; ++k)
    {
        double d1,d2,d;
        d1 = double (st*(sv-v[s]))/double(sv*(st-t[s]));
        d2 = double (st*(sv-v[ll]))/double(sv*(st-t[ll]));

        if (k > n-u)
        {
            if (d1 <= 1 && d2 <=1) break;
        }

        if (d1 > d2)
        {
            current *=d1;
            sv -= v[s];
            st -= t[s];
            ++s;
        }
        else
        {
            current *= d2;
            sv -= v[ll];
            st -= t[ll];
            --l;
        }
    }

    fout<<fixed<<setprecision(2)<<current;
}