蒟蒻求助,特判0分
查看原帖
蒟蒻求助,特判0分
649246
nothing__楼主2022/10/30 19:25
#include<iostream>
#include<cstring>
using namespace std;
const int N=1100, M=1100, inf=0x3f3f3f3f;
int a[N], b[M], c[N][M], mn[N];
int main()
{
//	freopen("game.in","r",stdin);
//	freopen("game.out","w",stdout);
	int n, m, q; scanf("%d%d%d", &n, &m, &q);
	bool bk=true;
	for(int i=1;i<=n;i++) 
	{	scanf("%d", &a[i]);
		if(!a[i]) {bk=false;}
	}
	for(int j=1;j<=m;j++) 
	{
		scanf("%d", &b[j]);
		if(!b[j]) {bk=false;}
	}
	if(bk) memset(mn, inf, sizeof(mn));
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			c[i][j]=a[i]*b[j];
			mn[i]=min(mn[i], c[i][j]);
		}
	}
	while(q--)
	{
		int l1, r1, l2, r2, ans=inf;
		scanf("%d%d%d%d", &l1, &r1, &l2, &r2);
		if(l1==r1)
		{
			for(int i=l2;i<=r2;i++)
			{
				ans=min(ans, c[l1][i]);
			}
			printf("%d\n", ans);
			continue;
		} 
		else if(l2==r2)
		{
			ans=-inf;
			for(int i=l1;i<=r1;i++)
			{
				ans=max(ans, c[i][l2]);
			}
			printf("%d\n", ans);
			continue;
		}
		else if(bk)
		{
			int xx, mx=0;
			for(int i=1;i<=n;i++) 
			{
				if(mn[i]>mx&&mn[i]!=inf) xx=i, mx=mn[i];
			}
			for(int i=1;i<=m;i++)
			{
				ans=min(c[xx][i], ans);
			}
			printf("%d\n", ans);
			continue;
		}
		else
		{
			for(int i=l1;i<=r1;i++)
			{
				for(int j=l2;j<=r2;j++)
				{
					ans=min(ans, c[i][j]);
				} 
			}
		}
		printf("%d\n", ans);
	}
	return 0;
} 

按理说应该会骗到一点分啊?为什么全wa。求助

2022/10/30 19:25
加载中...