暴力预期60pts 实际25pts 求调
查看原帖
暴力预期60pts 实际25pts 求调
655185
Nullity_Silence楼主2024/10/22 23:36

rt

#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;

const int N=1e5+10;
const long long inf=4557430888798830300;

int n,m,q;
long long a[N],b[N];

int main()
{
	cin>>n>>m>>q;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<=m;i++)
		cin>>b[i];
	while(q--)
	{
		int l1,r1,l2,r2;
		cin>>l1>>r1>>l2>>r2;
		long long minn=inf,maxx=-inf;
		for(int i=l2;i<=r2;i++)
		{
			minn=min(minn,b[i]);
			maxx=max(maxx,b[i]);
		}
		long long res=-inf;
		int t1,t2; 
		if(minn>=0)
		{
			long long ans=-inf;
			for(int i=l1;i<=r1;i++)
				ans=max(ans,a[i]);
			res=ans*minn;
		}
		else
		{
			long long ans=inf;
			for(int i=l1;i<=r1;i++)
				if(a[i]>=0)
					ans=min(ans,a[i]);
			if(ans!=inf)
				res=ans*minn;
		}
		if(maxx<=0)
		{
			long long ans=inf;
			for(int i=l1;i<=r1;i++)
				ans=min(ans,a[i]);
			res=max(res,ans*maxx);
		}
		else
		{
			long long ans=-inf;
			for(int i=l1;i<=r1;i++)
				if(a[i]<=0)
					ans=max(ans,a[i]);
			if(ans!=-inf)
				res=max(res,ans*maxx);
		}
		cout<<res<<endl;
	}
	return 0;
}
2024/10/22 23:36
加载中...