比赛 CSP2022提高组 评测结果 AAWWWAAAWWWWTTTTTTTT
题目名称 策略游戏 最终得分 25
用户昵称 00000 运行时间 8.000 s
代码语言 C++ 内存使用 3.95 MiB
提交时间 2022-10-30 12:30:30
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
#define vb 0x3f3f3f3f3f3f3f3f
using namespace std;
ll n,m,t,a[200000],b[200000];
ll l,r,i,j,flag;
//void work()
//{
//	while(t--)
//	{
//		cin>>l>>r>>i>>j;
//		
//	}
//}
ll check()
{
	ll g=0,h=0;
	for(ll q=i;q<=j;q++)
	{
		if(b[q]>0) g++;
		if(b[q]<0) h++;
		if(b[q]==0) flag=1;	
	}
	if(g&&h) return 1;
	if(g==0) return 2;
	if(h==0) return 3;
}
int main(){
	freopen("csp2022_game.in","r",stdin);
	freopen("csp2022_game.out","w",stdout);
cin>>n>>m>>t;
	for(int q=1;q<=n;q++) cin>>a[q];
	for(int q=1;q<=m;q++) cin>>b[q];
while(t--)
{
		flag=0;
		cin>>l>>r>>i>>j;
		if(check()==1)
		{
			ll c=0,d=0,fl=1;
			for(int q=i;q<=j;q++)
			{
				c=min(c,b[q]);d=max(d,b[q]);
			}
			ll f=vb,g=-vb;
			for(int q=l;q<=r;q++)
			{
				if(a[q]==0)
				{
					cout<<0<<endl;fl=0;break;
				}
				if(a[q]>0)
				{
					f=min(f,a[q]);
				}
				if(a[q]<0)
				{
					g=max(g,a[q]);
				}
			}
			if(fl)
			{
				cout<<max(f*c,g*d)<<endl;
			}
		}
		if(check()==2)
		{
			ll f=vb;
			for(int q=l;q<=r;q++) f=min(f,a[q]);
			if(f==0) cout<<0<<endl;
			if(f>0)
			{
				ll g=vb;
				for(int q=i;q<=j;q++) g=min(g,b[q]);
				cout<<f*g<<endl;
			}
			if(f<0)
			{
				ll g=-vb;
				for(int q=i;q<=j;q++) g=max(g,b[q]);
				cout<<f*g<<endl;
			}
		}
		if(check()==3)
		{
			ll f=-vb;
			for(int q=l;q<=r;q++) f=max(f,a[q]);
			if(f==0) cout<<0<<endl;
			if(f>0)
			{
				ll g=vb;
				for(int q=i;q<=j;q++) g=min(g,b[q]);
				cout<<f*g<<endl;
			}
			if(f<0)
			{
				ll g=-vb;
				for(int q=i;q<=j;q++) g=max(g,b[q]);
				cout<<f*g<<endl;
			}
		}
//		ans=-0x3f3f3f3f3f3f3f3f;
//		for(int q=l;q<=r;q++)
//		{
//			ll p=0x3f3f3f3f3f3f3f3f;
//			for(int w=i;w<=j;w++)
//			{
//				p=min(p,a[q]*b[w]);
//			}
//			ans=max(ans,p);
//		}
//		cout<<ans<<endl;
}
//cout<<clock();
return 0;
}