Pagini recente » Cod sursa (job #1415107) | Cod sursa (job #2988006) | Cod sursa (job #769909) | Cod sursa (job #366559) | Cod sursa (job #2643242)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
using namespace std;
using namespace __gnu_pbds;
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_set;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
ll l,u,s1[30001],s2[30001],n,v1[30001],v2[30001];
pll maxim={0,1};
bool maimare(pll a, pll b)
{
return a.first*b.second>a.second*b.first;
}
int main()
{
ios_base::sync_with_stdio(false);
fin.tie(0);
fout.tie(0);
fin>>n>>l>>u;
for(int i=1;i<=n;i++)
{
fin>>v1[i];
s1[i]=s1[i-1]+v1[i];
}
for(int i=1;i<=n;i++)
{
fin>>v2[i];
s2[i]=s2[i-1]+v2[i];
}
if((u-l+1)*n>1e8)
{
for(int lg=l;lg<=u/5;lg++)
for(int i=lg;i<=n;i++)
{
ll suma1=s1[i]-s1[i-lg];
ll suma2=s2[i]-s2[i-lg];
if(maimare({suma1,suma2},maxim))
maxim={suma1,suma2};
}
double ans;
double nr1=double(maxim.first);
double nr2=double(maxim.second);
ans=nr1/nr2;
fout<<fixed<<setprecision(2)<<ans;
return 0;
}
for(int lg=l;lg<=u;lg++)
for(int i=lg;i<=n;i++)
{
ll suma1=s1[i]-s1[i-lg];
ll suma2=s2[i]-s2[i-lg];
if(maimare({suma1,suma2},maxim))
maxim={suma1,suma2};
}
double ans;
double nr1=double(maxim.first);
double nr2=double(maxim.second);
ans=nr1/nr2;
fout<<fixed<<setprecision(2)<<ans;
return 0;
}