#include<bits/stdc++.h>
using namespace std;
char *p1,*p2,buf[100000];
#define gc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
inline long long read(){
long long x=0,f=1;char ch=gc();
while(ch<48||ch>57){if(ch=='-')f=-1;ch=gc();}
while(ch>=48&&ch<=57)x=x*10+ch-48,ch=gc();
return x*f;
}
#define rd read()
#define re register long long
#define ll long long
#define cl(a) memset(a,0,sizeof a)
#define szread(a,n) for(register long long i=1;i<=n;i++){cin>>a[i];}
#define forn(i,n) for(register long long i=1;i<=n;i++)
#define copy(a,b) copy(begin(a),end(a),begin(b))
#define fin(a) freopen(a,"r",stdin)
#define fout(a) freopen(a,"w",stdout)
#define ferr(a) freopen(a,"w",stderr)
ll amax[100050][30],amin[100050][30],amax2[100050][30],ans,
amin2[100050][30],bmax[100050][30],bmin[100050][30],ya,yb,
n,m,q,x,la,lb,ra,rb,maxa,mina,maxa2,mina2,maxb,minb,xa,xb;
int main(){
n=rd,m=rd,q=rd;
for(re i=1;i<=n;i++){
x=read();
amax[i][0]=amin[i][0]=x;
if(x<0){
amax2[i][0]=x;
amin2[i][0]=1145141919810;
}else{
amin2[i][0]=x;
amax2[i][0]=-1145141919810;
}
}
for(re i=1;i<=m;i++){
x=read();
bmax[i][0]=bmin[i][0]=x;
}
for(re j=1;j<=log2(n);j++){
for(re i=1;i+(1<<j)-1<=n;i++){
amax[i][j]=max(amax[i][j-1],amax[i+(1<<(j-1))][j-1]);
amax2[i][j]=max(amax2[i][j-1],amax2[i+(1<<(j-1))][j-1]);
amin[i][j]=min(amin[i][j-1],amin[i+(1<<(j-1))][j-1]);
amin2[i][j]=min(amin2[i][j-1],amin2[i+(1<<(j-1))][j-1]);
}
}
for(re j=1;j<=log2(m);j++){
for(re i=1;i+(1<<j)-1<=m;i++){
bmax[i][j]=max(bmax[i][j-1],bmax[i+(1<<(j-1))][j-1]);
bmin[i][j]=min(bmin[i][j-1],bmin[i+(1<<(j-1))][j-1]);
}
}
while(q--){
la=rd,ra=rd,lb=rd,rb=rd;
xa=log2(ra-la+1),xb=log2(rb-lb+1);
ya=ra-(1<<xa)+1,yb=rb-(1<<xb)+1;
maxa=max(amax[la][xa],amax[ya][xa]);
mina=min(amin[la][xa],amin[ya][xa]);
maxa2=max(amax2[la][xa],amax2[ya][xa]);
mina2=min(amin2[la][xa],amin2[ya][xa]);
maxb=max(bmax[lb][xb],bmax[yb][xb]);
minb=min(bmin[lb][xb],bmin[yb][xb]);
ans=max(ans,maxa*(maxa>=0?minb:maxb));
ans=max(ans,mina*(mina>=0?minb:maxb));
if (maxa2!=-1145141919810){
ans=max(ans,maxa2*(maxa2>=0?minb:maxb));
}
if (mina2!=1145141919810){
ans=max(ans,mina2*(mina2>=0?minb:maxb));
}
cout<<ans<<endl;
}
return 0;
}
先谢谢各位了