30pts求助!
查看原帖
30pts求助!
836643
Asher12楼主2024/7/22 09:45
#include <iostream>
#include <algorithm>
using namespace std;
int n,r,q;
struct N
{
	int s,p,id;
}a[1000010],w[1000010],l[1000010];
bool cmp(N a,N b)
{
	if (a.s!=b.s)
	{
		return a.s>b.s;
	}
	return a.id<b.id;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>r>>q;
	n*=2;
	for (int i=1;i<=n;++i)
	{
		cin>>a[i].s;
	}
	for (int i=1;i<=n;++i)
	{
		cin>>a[i].p;
		a[i].id=i;
	}
	sort(a+1,a+n+1,cmp);
	for (int i=1;i<=r;++i)
	{
		int win=0,lose=0;
		for (int j=1;j<n;j+=2)
		{
			if (a[j].p>a[j+1].p)
			{
				++a[j].s;
				w[++win]=a[j];
				l[++lose]=a[j+1];
			}
			else
			{
				++a[j+1].s;
				l[++lose]=a[j];
				w[++win]=a[j+1];
			}
		}
		int j=1,k=1,g=1;
		while (j<=win&&k<=lose)
		{
			if (cmp(w[j],l[k]))
			{
				a[g++]=w[j++];
			}
			else
			{
				a[g++]=l[k++];
			}
		}
	}
	cout<<a[q].id<<'\n';
	return 0;
}
2024/7/22 09:45
加载中...