求助,前半部分全wa
查看原帖
求助,前半部分全wa
342494
wxh666楼主2022/11/1 16:41

链接

#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;
}

只写了特殊样例点

2022/11/1 16:41
加载中...