求数据
  • 板块CF670C Cinema
  • 楼主ZhongYuLin
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/8/4 11:16
  • 上次更新2023/11/3 06:00:24
查看原帖
求数据
600441
ZhongYuLin楼主2023/8/4 11:16
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
struct cinema{
	int ind,vo,zi;
}a[maxn],b[maxn];
int n,m,ind=0,maxshu=0,indb=0,yuc,zic;
int yu1[maxn],yu2[maxn],yushu[maxn],yuyue[maxn];
bool cmp(cinema x,cinema y){
	if(x.zi==y.zi) return x.ind<y.ind;
	return x.zi>y.zi;
}
inline int read(){
	int a=0;char c;
	while((c=getchar())<48);
	do(a=a*10+(c^48));
	while((c=getchar())>47);
	return a;
}
int main(){
	n=read();
	for(int i=1;i<=n;i++)
		yu1[i]=read();
	sort(yu1+1,yu1+1+n);
	for(int i=1;i<=n;i++){
		if(yu1[i]!=yu2[ind]||ind==0)
			yu2[++ind]=yu1[i];
		++yushu[ind];	
	}
	for(int i=1;i<=ind;i++)
		maxshu=(maxshu<yushu[i])?yushu[i]:maxshu;
	//cout<<maxshu<<endl;
	for(int i=1;i<=ind;i++)
		if(yushu[i]==maxshu){
			yuyue[++yuyue[0]]=yu2[i];
		}
	//cout<<(lower_bound(yuyue+1,yuyue+1+yuyue[0],2)-yuyue)<<endl;
	m=read();
	for(int i=1;i<=m;i++){
		a[i].vo=read();
		a[i].ind=i;
	}
	for(int i=1;i<=m;i++){
		zic=read();
		
		int yuind=lower_bound(yu2+1,yu2+1+ind,zic)-yu2;
		if(yu2[yuind]==zic) a[i].zi=yushu[yuind];
		else a[i].zi=-1;
	}
	for(int i=1;i<=m;i++){
		//cout<<yuyue[lower_bound(yuyue+1,yuyue+1+ind,a[i].vo)-yuyue]<<endl;
		if(yuyue[lower_bound(yuyue+1,yuyue+1+yuyue[0],a[i].vo)-yuyue]==a[i].vo)
			b[++indb]=a[i];
	}
	if(indb!=0){
		sort(b+1,b+1+indb,cmp);
		cout<<b[1].ind;
	}else{
		sort(a+1,a+1+m,cmp);
		cout<<a[1].ind;
	}
	
	return 0;
} 


我甚至找不到Hack数据.......

2023/8/4 11:16
加载中...