萌新60分TLE求助
查看原帖
萌新60分TLE求助
977890
nanami0721楼主2024/10/22 17:40

60分以后全部TLE 代码如下:

#include<bits/stdc++.h>
using namespace std;
long long n,m,q,r1,r2,l1,l2;
long long a[100010],b[100010],ans[100010],ans1,ans2,k1=1,k2,max1,max2,k3;
int main(){
	cin>>n>>m>>q;
	for(long long i=1;i<=n;i++){
		cin>>a[i];
	}
	for(long long i=1;i<=m;i++){
		cin>>b[i];
	}
	for(long long i=1;i<=q;i++){
		k2=0;
		k1=1;
		ans1=-10000000000000000000010;
		ans2=-10000000000000000000010;
		max1=10000000000000000000010;
		max2=10000000000000000000010;
		cin>>l1>>r1>>l2>>r2;
		for(long long j=l1;j<=r1;j++){
			max1=10000000000000000000010;
			max2=10000000000000000000010;
			k1=1;
			k3=1;
			for(long long h=l2;h<=r2;h++){
				if(a[j]*b[h]<0&&k3){
					k2++;
					k1=0;
					k3=0;
				}
				if(a[j]*b[h]>=0){
					max1=min(max1,a[j]*b[h]);
				}
				else{
					max2=min(max2,a[j]*b[h]);
				}
			}
			if(ans1<max1&&k1&&max1!=10000000000000000000010){
				ans1=max1;
				}
			if(ans2<max2&&max2!=10000000000000000000010){
				ans2=max2;
			}
		}
		if(k2==r1-l1+1){
			ans[i]=ans2;
		}
		else{
			ans[i]=ans1;
		}
	}
	for(long long i=1;i<=q;i++){
		cout<<ans[i]<<endl;
	}
}
2024/10/22 17:40
加载中...