比赛 |
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;
}