求大佬解答P1003
查看原帖
求大佬解答P1003
528460
12tianxun楼主2022/3/20 20:14
#include<bits/stdc++.h>
using namespace std;
//c数组记录从(X,Y)到最大坐标的所有点 
int c[10000][10000];
//a,b,g,k记录每个abgk 
int a[10000],b[10000],g[10000],k[10000];
int main(){
//声明n,X,Y 
	int n,X=INT_MAX,Y=INT_MAX;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);
//打擂找到X和Y 
		X=min(X,min(a[i],g[i]));
		Y=min(Y,min(b[i],k[i]));
	}
    //cout<<X<<"--"<<Y<<endl;
//在c数组中填入地毯号 
	for(int i=1;i<=n;i++)
		for(int x=a[i]-X;x<=g[i]-X;x++)
				for(int y=b[i]-Y;y<=k[i]-Y;y++)
					c[x][y]=i;
	int x,y;
	scanf("%d%d",&x,&y);
//关闭缓存 
	ios::sync_with_stdio(false);
	if(c[x-X][y-Y]) cout<<c[x-X][y-Y]<<endl;
	else cout<<-1<<endl;
	return 0;
}

2022/3/20 20:14
加载中...