40pts求调,要破防了qwq
查看原帖
40pts求调,要破防了qwq
652816
saixingzhe楼主2024/6/25 21:37

评测记录

#include<bits/stdc++.h>
#define int long long 
using namespace std;
bool gmx(int &a, int b) {
    return b>a?a=b,true:false;
}
int n,m,q,a[100001],b[100001],max_a[100001][20],min_a[100001][20],max_b[100001][20],min_b[100001][20],fax[100001][20],fin[100001][20],l1,r1,l2,r2;
signed main(){
	scanf("%lld%lld%lld",&n,&m,&q);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		max_a[i][0]=min_a[i][0]=a[i];
		fax[i][0]=(a[i]<0?a[i]:LONG_LONG_MIN);
        fin[i][0]=(a[i]>=0?a[i]:LONG_LONG_MAX);
	}	
	for(int i=1;i<=m;i++)	scanf("%lld",&b[i]),max_b[i][0]=min_b[i][0]=b[i];
	for(int j=1;j<=20;j++)	for(int i=1;i+(1<<j)-1<=n;i++)	min_a[i][j]=min(min_a[i][j-1],min_a[i+(1<<(j-1))][j-1]),max_a[i][j]=max(max_a[i][j-1],max_a[i+(1<<(j-1))][j-1]),fax[i][j]=max(fax[i][j-1],fax[i+(1<<(j-1))][j-1]),fin[i][j]=min(fin[i][j-1],fin[i+(1<<(j-1))][j-1]);
	for(int j=1;j<=20;j++)	for(int i=1;i+(1<<j)-1<=m;i++)	min_b[i][j]=min(min_b[i][j-1],min_b[i+(1<<(j-1))][j-1]),max_b[i][j]=max(max_b[i][j-1],max_b[i+(1<<(j-1))][j-1]);
    while(q--){
    	long long ans=LONG_LONG_MIN;
		scanf("%lld%lld%lld%lld",&l1,&r1,&l2,&r2);
    	long long maxa=max(max_a[l1][(int)log2(r1-l1+1)],max_a[r1-(1<<(int)log2(r1-l1+1))+1][(int)log2(r1-l1+1)]);
    	long long mina=min(min_a[l1][(int)log2(r1-l1+1)],min_a[r1-(1<<(int)log2(r1-l1+1))+1][(int)log2(r1-l1+1)]);
    	long long maxb=max(min_b[l2][(int)log2(r2-l2+1)],max_b[r2-(1<<(int)log2(r2-l2+1))+1][(int)log2(r2-l2+1)]);
    	long long minb=min(min_b[l2][(int)log2(r2-l2+1)],min_b[r2-(1<<(int)log2(r2-l2+1))+1][(int)log2(r2-l2+1)]);
    	long long fmax=max(fax[l1][(int)log2(r1-l1+1)],fax[r1-(1<<(int)log2(r1-l1+1))+1][(int)log2(r1-l1+1)]);
    	long long fmin=min(fin[l1][(int)log2(r1-l1+1)],fin[r1-(1<<(int)log2(r1-l1+1))+1][(int)log2(r1-l1+1)]);   	
		gmx(ans,maxa*(maxa>=0?minb:maxb));
        gmx(ans,mina*(mina>=0?minb:maxb));
		if(fmax!=LONG_LONG_MIN)	gmx(ans,fmax*(fmax>=0?minb:maxb));
		if(fmin!=LONG_LONG_MAX)	gmx(ans,fmin*(fmin>=0?minb:maxb));
		printf("%lld\n",ans);
	}
	return 0;
}

有帮助必定给予关注/bx

2024/6/25 21:37
加载中...