题外话:CCF 数据居然会比民间数据弱!
by NightTide @ 2022-11-08 15:03:02
@[Hoshino_kaede](/user/547908) 震惊全国oier
by Xseventh @ 2022-11-08 15:18:09
@[晴空一鹤](/user/158400) 情况少了捏
```cpp
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll __int128
int a[100005],b[100005];int st1[100005][30],st2[100005][30],st3[100005][30],st4[100005][30],st5[100005][30],st6[100005][30];
int l,rr,lll,rrr;
int ama,ami,amma,ammi,bma,bmi;
void inline r(int &x)
{
x=0;char c=getchar();int f=1;
while(c>'9'||c<'0'){
if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9')
{
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
x*=f;
}
void inline pr(ll x)
{
if(x<0)
{
putchar('-');
pr(-x);
return ;
}
if(x>=10)pr(x/10);
putchar(x%10^48);
}
int n,m,q;
void inline st()
{
for(int i=1;i<=n;i++)
st1[i][0]=a[i];
for(int i=1;i<=29;i++)
for(int j=1;j<=n-(1<<i)+1;j++)
st1[j][i]=max(st1[j][i-1],st1[j+(1<<(i-1))][i-1]);
}
void inline stt()
{
for(int i=1;i<=n;i++)
st2[i][0]=a[i];
for(int i=1;i<=29;i++)
for(int j=1;j<=n-(1<<i)+1;j++)
st2[j][i]=min(st2[j][i-1],st2[j+(1<<(i-1))][i-1]);
}
void inline sttt()
{
for(int i=1;i<=n;i++)
if(a[i]>=0)
st3[i][0]=a[i];
else
st3[i][0]=40000000000000;
for(int i=1;i<=29;i++)
for(int j=1;j<=n-(1<<i)+1;j++)
st3[j][i]=min(st3[j][i-1],st3[j+(1<<(i-1))][i-1]);
}
void inline stttt()
{
for(int i=1;i<=n;i++)
if(a[i]<=0)
st4[i][0]=a[i];
else
st4[i][0]=-40000000000000;
for(int i=1;i<=29;i++)
for(int j=1;j<=n-(1<<i)+1;j++)
st4[j][i]=max(st4[j][i-1],st4[j+(1<<(i-1))][i-1]);
}
void inline sttttt()
{
for(int i=1;i<=m;i++)
st5[i][0]=b[i];
for(int i=1;i<=29;i++)
for(int j=1;j<=m-(1<<i)+1;j++)
st5[j][i]=max(st5[j][i-1],st5[j+(1<<(i-1))][i-1]);
}
void inline stttttt()
{
for(int i=1;i<=m;i++)
st6[i][0]=b[i];
for(int i=1;i<=29;i++)
for(int j=1;j<=m-(1<<i)+1;j++)
st6[j][i]=min(st6[j][i-1],st6[j+(1<<(i-1))][i-1]);
}
signed main()
{
r(n);r(m);r(q);
for(int i=1;i<=n;i++)
r(a[i]);
for(int j=1;j<=m;j++)
r(b[j]);
st();
stt();
sttt();
stttt();
sttttt();
stttttt();
for(int i=1;i<=q;i++)
{
r(l);r(rr);r(lll);r(rrr);
bma=max(st5[lll][(ll)(log2(rrr-lll+1))],st5[rrr-(1<<(ll)(log2(rrr-lll+1)))+1][(ll)(log2(rrr-lll+1))]);
ama=max(st1[l][(ll)(log2(rr-l+1))],st1[rr-(1<<(ll)(log2(rr-l+1)))+1][(ll)(log2(rr-l+1))]);
bmi=min(st6[lll][(ll)(log2(rrr-lll+1))],st6[rrr-(1<<(ll)(log2(rrr-lll+1)))+1][(ll)(log2(rrr-lll+1))]);
ami=min(st2[l][(ll)(log2(rr-l+1))],st2[rr-(1<<(ll)(log2(rr-l+1)))+1][(ll)(log2(rr-l+1))]);
amma=max(st4[l][(ll)(log2(rr-l+1))],st4[rr-(1<<(ll)(log2(rr-l+1)))+1][(ll)(log2(rr-l+1))]);
ammi=min(st3[l][(ll)(log2(rr-l+1))],st3[rr-(1<<(ll)(log2(rr-l+1)))+1][(ll)(log2(rr-l+1))]);
//cout<<ami<<" "<<ama<<" "<<bmi<<" "<<bma<<" "<<ammi<<" "<<amma<<"\n";
if(bma<=0&&bmi>=0)
pr(max(((ll)ami)*((ll)bma),((ll)ama)*((ll)bmi)));
else
if(bma<=0){
if(ami<=0)pr(((ll)ami)*((ll)bma));
else pr(((ll)ami)*((ll)bmi));
}
else if(bmi>=0){
if(ama>=0)pr(((ll)ama)*((ll)bmi));
else pr(((ll)ama)*((ll)bma));
}
else if(amma<=-40000000000)pr(((ll)ammi)*((ll)bmi));
else if(ammi>=40000000000)pr(((ll)amma)*((ll)bma));
else pr(max(((ll)amma)*((ll)bma),((ll)ammi)*((ll)bmi)));
putchar('\n');
}
}
```
by qnqfff @ 2022-11-08 15:21:12
@[qnqfff](/user/304534) thx,此帖完结
by 晴空一鹤 @ 2022-11-08 15:26:55
922 了属于是
by syysongyuyang @ 2022-11-08 16:02:03