求助大佬!第八个点WA
  • 板块CF670C Cinema
  • 楼主eastcloud
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/1/3 17:11
  • 上次更新2023/10/28 12:53:45
查看原帖
求助大佬!第八个点WA
421265
eastcloud楼主2022/1/3 17:11
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,x,y,m;
struct pai{
	int num,val,numm;
}ke[200001];
pai mov[200001],ans[200001];
int ton[200001];
int find(int x){
	int l=0,r=n;
	while(l<r){
		int mid=(l+r)>>1;
		if(ke[mid].val>=x)r=mid;
		else l=mid+1;
	}
	if(ke[l].val==x) return ton[ke[l].num];
	else return 0;
}
bool cmp(pai x,pai y){
	return x.val<y.val;
}
bool cmp1(pai x,pai y){
	if(x.num!=y.num) return x.num>y.num;
	else if(x.val!=y.val) return x.val>y.val;
	else return x.numm<y.numm;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>ke[i].val;
		ke[i].num=i;
	}
	sort(ke+1,ke+n+1,cmp);
	for(int i=1;i<=n;i++){
		if(ke[i-1].val!=ke[i].val) ton[i]++;
		else{
			ke[i].num=ke[i-1].num;
			ton[ke[i].num]++;
		}
	}
	cin>>m;
	for(int i=1;i<=m;i++)cin>>mov[i].num;
	for(int i=1;i<=m;i++){
		cin>>mov[i].val;
		mov[i].numm=i;
	}
	for(int i=1;i<=m;i++){
		ans[i].num+=find(mov[i].num);
		ans[i].val+=find(mov[i].val);
		ans[i].numm=mov[i].numm;
	}
	sort(ans+1,ans+n+1,cmp1);
	cout<<ans[1].numm;
}

结构体懒得开两个了,就是结构体和排序,看上去没问题啊

2022/1/3 17:11
加载中...