大佬30分求调
查看原帖
大佬30分求调
1021663
__hjwucj__楼主2023/11/4 20:33
#include <bits/stdc++.h>
using namespace std;
int n,r,q;
struct node{
	int x,y,i;
} a[2000001];
node at[1000001]={},bt[1000001]={};
bool cmp (node x,node y) {return x.x>y.x||(x.x==y.x&&x.i<y.i);}
int main ()
{
	cin>>n>>r>>q;
	for (int i=1;i<=n*2;i++) cin>>a[i].x,a[i].i=i;
	for (int i=1;i<=n*2;i++) cin>>a[i].y;
	sort (a+1,a+n*2+1,cmp);
	for (int i=1;i<=r;i++)
	{
		int as=0,bs=0;
		for (int j=1;j<=n*2;j+=2)
			if (a[j].y>a[j+1].y) 
			{
				a[j].x++;
				at[++as]=a[j];
				bt[++bs]=a[j+1];
			}else
				{
					a[j+1].x++;
					at[++as]=a[j+1];
					bt[++bs]=a[j];
				}
		int j=0;
		as=1,bs=1;
		while (as<n&&bs<n)
			if (at[as].x>bt[bs].x)
			{
				a[++j]=at[as];
				as++;
			}else
				{
					a[++j]=bt[bs];
					bs++;
				}
		if (as<n) {for (int i=as;i<=n;i++) a[++j]=at[i];}
			else {for (int i=bs;i<=n;i++) a[++j]=bt[i];}
		//for (int i=1;i<=n*2;i++) cout<<a[i].i<<' ';
		//cout<<endl;
	}
	//for (int i=1;i<=n*2;i++) cout<<a[i].i<<' '; 
	cout<<a[q].i<<endl;
	return 0;
}
2023/11/4 20:33
加载中...