90分,玄学,第九个点一直错,求调
查看原帖
90分,玄学,第九个点一直错,求调
524910
DfsIJK_Juruo楼主2024/8/5 20:17

RT

#include<bits/stdc++.h>
using namespace std;
int read(){
	char x=getchar();
	int s=0,t=1;
	while(!isdigit(x)){
		if(x=='-') t=-1;
		x=getchar(); 
	}
	while(isdigit(x)){
		s=s*10+x-'0';
		x=getchar();
	}
	return s*t;
}
int n,r,q;
int k1=1,k2=1;
struct node{
	int sc,nb,num;
}c[200005],a[200005],b[200005];
bool cmp(node x,node y){return (x.sc!=y.sc)?(x.sc>y.sc):(x.num<y.num);}
void niubi_sort(){
	int i=1,j=1,k=1;
	while(i<=k1&&j<=k2){
		if(cmp(a[i],b[j])) c[k]=a[i],i++;
		else c[k]=b[j],j++;
		k++;
	}
	for(;i<=k1;i++) c[k++]=a[i];
	for(;j<=k2;j++) c[k++]=b[j];
}
int main(){
	n=read(),r=read(),q=read();
	n*=2;
	for(int i=1;i<=n;i++){c[i].sc=read();c[i].num=i;}
	for(int i=1;i<=n;i++) c[i].nb=read();
	sort(c+1,c+n+1,cmp);
	while(r--){
		k1=k2=1;
		for(int i=1;i<=n;i+=2){
			if(c[i].nb>c[i+1].nb) c[i].sc++,a[k1++]=c[i],b[k2++]=c[i+1];
			else c[i+1].sc++,a[k1++]=c[i+1],b[k2++]=c[i];
		}
		niubi_sort();
	}
	cout<<c[q].num;
	return 0;
}
2024/8/5 20:17
加载中...