这道题目答案不是很小么,我就用一个变量ans设成-1e9去比较求最大值,结果答案比-1e9还要小,输出了一堆-1e9,在洛谷上提交全WA+TLE了,还有戏吗?【大哭】
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdarg.h>
using namespace std;
typedef long long ll;
int n,m,q,l1,r1,l2,r2;
ll a[100005],b[100005];
int main(void)
{
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
scanf("%d%d%d",&n,&m,&q);
for (int x=1;x<=n;x++)
scanf("%lld",a+x);
for (int x=1;x<=m;x++)
scanf("%lld",b+x);
while (q--)
{
scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
ll max1=-1e9,min1=1e9,j1=1e9,max2=-1e9,min2=1e9,j2=-1e9;
for (int x=l1;x<=r1;x++)
{
max1=max1>a[x]?max1:a[x];
min1=min1<a[x]?min1:a[x];
if (a[x]>0&&j1!=0)
j1=j1<a[x]?j1:a[x];
else if (a[x]<0&&j2!=0)
j2=j2>a[x]?j2:a[x];
else
j1=j2=0;
}
for (int x=l2;x<=r2;x++)
{
max2=max2>b[x]?max2:b[x];
min2=min2<b[x]?min2:b[x];
}
ll ans=-1e9;//啊啊啊啊崩了
ans=ans>max1*min2?ans:max1*min2;
ans=ans>max2*min1?ans:max2*min1;
ans=ans>j1*min2?ans:j1*min2;
ans=ans>j2*max2?ans:j2*max2;
printf("%lld\n",ans);
}
return 0;
}
估计没戏了。。。。。