#include<bits/stdc++.h>
using namespace std;
int n,m,q;
int a[100005],b[100005];
int l1,l2,r1,r2;
int ms;
int main()
{
cin>>n>>m>>q;
ms=1;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]<=0) ms=0;
}
for(int i=1;i<=m;i++)
{
scanf("%d",&b[i]);
if(b[i]<=0) ms=0;
}
while(q--)
{
int lmaxx=0,rminx=0x7f7f7f7f,lminx=0x7f7f7f7f,rmaxx=0;
scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
if(ms==1)
{
for(int i=l1;i<=r1;i++)
lmaxx=max(lmaxx,a[i]),lminx=min(lminx,a[i]);
for(int i=l2;i<=r2;i++)
rmaxx=max(lmaxx,b[i]),rminx=min(rminx,b[i]);
printf("%d\n",lmaxx*rminx);
continue;
}
if(l1==r1)
{
lmaxx=lminx=a[r1];
int have0=0;
for(int i=l2;i<=r2;i++)
{
rmaxx=max(rmaxx,b[i]),rminx=min(rminx,b[i]);
if(b[i]==0) have0=1;
}
if(lmaxx>0)
printf("%d\n",lmaxx*rminx);
if(lmaxx<0)
printf("%d\n",lmaxx*rmaxx);
if(lmaxx==0)
printf("0\n");
continue;
}
if(l2==r2)
{
rmaxx=rminx=b[r2];
for(int i=l1;i<=r1;i++)
lmaxx=max(lmaxx,a[i]),lminx=min(lminx,a[i]);
if(rmaxx>0)
printf("%d\n",rmaxx*lmaxx);
if(rmaxx<0)
printf("%d\n",rmaxx*lminx);
if(rmaxx==0)
printf("0\n");
continue;
}
}
return 0;
}
只写了特殊样例点