ABC D WA 2 求助
  • 板块学术版
  • 楼主IYSY2009I
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/6/3 22:25
  • 上次更新2023/10/23 13:56:25
查看原帖
ABC D WA 2 求助
449457
IYSY2009I楼主2023/6/3 22:25
#include<iostream>
#include<cstdio>
#include<map>
#include<algorithm>
using namespace std;
int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=(x<<1)+(x<<3)+c-'0';
		c=getchar();
	}
	return x*f;
}
struct st{
	int x;
	int y;
};
bool operator==(const st& a,const st& b){
	return a.x==b.x&&a.y==b.y;
}
st s[200005];
int p[200005];
int q[200005];
int a[200005];
int b[200005];
map<pair<int,int> ,int> mp;
bool cmp(st x,st y){
	if(x.y!=y.y) return x.y<y.y;
	return x.x>y.x;
}
int main(){
	int w=read(),h=read();
	int n=read();
	for(int i=1;i<=n;i++)
		p[i]=read(),q[i]=read();
	int A=read();
	for(int i=1;i<=A;i++)
		a[i]=read();
	int B=read();
	for(int i=1;i<=B;i++)
		b[i]=read();
	int mx=0,mn=3e5;
	for(int i=1;i<=n;i++){
		if(p[i]>a[A]) s[i].x=A+1;
		else s[i].x=lower_bound(a+1,a+A+1,p[i])-a;
		if(q[i]>b[B]) s[i].y=B+1;
		else s[i].y=lower_bound(b+1,b+B+1,q[i])-b;
		mp[make_pair(s[i].x,s[i].y)]++;
		mx=max(mx,mp[make_pair(s[i].x,s[i].y)]);
	}
	sort(s+1,s+n+1,cmp);
	int cnt=unique(s+1,s+n+1)-s-1;
	if((A+1)*(B+1)>cnt){
		printf("0 %d",mx);
		return 0;
	}
	for(int i=1;i<=cnt;i++)
		mn=min(mn,mp[make_pair(s[i].x,s[i].y)]);
	printf("%d %d",mn,mx);
	return 0;
}
2023/6/3 22:25
加载中...