#include<bits/stdc++.h>
#define ll __int128
#define rint register int
using namespace std;
const ll N=1e5,M=20,inf=9e18;
ll n,m,q,p,ans,a,b;
ll st1[N][M],st2[N][M],st3[N][M],st4[N][M],st5[N][M],st6[N][M];
ll la,ra,lb,rb,sa,pa,sb,pb,s1,s2,s3,s4,s5,s6;
inline __int128 read()
{
rint x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
void print(int x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9)
{
print(x/10);
putchar(x%10+'0');
}
else putchar(x+'0');
return;
}
inline ll max(ll x,ll y){return x>y?x:y;}
int main(){
n=read();m=read();q=read();
for(int i=1;i<=n;i++){
a=read();
st1[i][0]=st2[i][0]=a;
st3[i][0]=a<0?a:-inf;
st4[i][0]=a>=0?a:inf;
}
for(int i=1;i<=m;i++){
b=read();
st5[i][0]=st6[i][0]=b;
}
for(int j=1;j<=log2(n);j++){
for(int i=1;i-1+(1<<j)<=n;i++){
p=i+(1<<(j-1));
st1[i][j]=max(st1[i][j-1],st1[p][j-1]);
st2[i][j]=min(st2[i][j-1],st2[p][j-1]);
st3[i][j]=max(st3[i][j-1],st3[p][j-1]);
st4[i][j]=min(st4[i][j-1],st4[p][j-1]);
}
}
for(int j=1;j<=log2(m);j++){
for(int i=1;i-1+(1<<j)<=m;i++){
p=i+(1<<(j-1));
st5[i][j]=max(st5[i][j-1],st5[p][j-1]);
st6[i][j]=min(st6[i][j-1],st6[p][j-1]);
}
}
while(q--){
la=read();ra=read();la=read();lb=read();
sa=log2(ra-la+1),sb=log2(rb-lb+1);
pa=ra-(1<<sa)+1,pb=rb-(1<<sb)+1;
s1=max(st1[la][sa],st1[pa][sa]);
s2=min(st2[la][sa],st2[pa][sa]);
s3=max(st3[la][sa],st3[pa][sa]);
s4=min(st4[la][sa],st4[pa][sa]);
s5=max(st5[lb][sb],st5[pb][sb]);
s6=min(st6[lb][sb],st6[pb][sb]);
ans=-inf;
ans=max(ans,s1*(s1>=0?s6:s5));
ans=max(ans,s2*(s2>=0?s6:s5));
if(s3!=-inf)ans=max(ans,s3*(s3>=0?s6:s5));
if(s4!=inf)ans=max(ans,s4*(s4>=0?s6:s5));
print(ans);
printf("\n");
}
return 0;
}
有哪位大佬能帮帮本蒟蒻?