比赛 |
CSP2022提高组 |
评测结果 |
AAAAAAAAAAAATTTTTTTT |
题目名称 |
策略游戏 |
最终得分 |
60 |
用户昵称 |
ムラサメ |
运行时间 |
8.538 s |
代码语言 |
C++ |
内存使用 |
3.71 MiB |
提交时间 |
2022-10-30 11:34:25 |
显示代码纯文本
#include<bits/stdc++.h>
#define inf 9223372036854775807
#define ll long long
using namespace std;
const int N=1e5+10;
ll n,m,a[N],b[N],q;
bool l=1;
int main(){
freopen("csp2022_game.in","r",stdin);
freopen("csp2022_game.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]<=0)l=0;
}
for(int i=1;i<=m;i++){
cin>>b[i];
if(b[i]<=0){
l=0;
}
}
if(l==1){
for(int i=1;i<=q;i++){
ll a1,b1,a2,b2,max1=-inf,min1=inf;
cin>>a1>>b1>>a2>>b2;
for(int j=a1;j<=b1;j++){
max1=max(max1,a[j]);
}
for(int k=a2;k<=b2;k++){
min1=min(min1,b[k]);
}
cout<<max1*min1<<endl;
}
}
else{
for(int i=1;i<=q;i++){
int a1,b1,a2,b2;
ll ans=-inf;
cin>>a1>>b1>>a2>>b2;
for(int j=a1;j<=b1;j++){
ll minn=inf;
for(int k=a2;k<=b2;k++){
minn=min(minn,a[j]*b[k]);
}
ans=max(minn,ans);
}
cout<<ans<<endl;
}
}
return 0;
}