40pts求调(悬关)
查看原帖
40pts求调(悬关)
1202695
Junior_Young楼主2024/1/16 15:10

code

#include<iostream>
#include<algorithm>
using namespace std;
struct kkksc03{
	int s,w,id;
}oier[200001];
int n,r,q;
bool cmp(kkksc03 al,kkksc03 bt)
{
	if(al.s!=bt.s)
		return al.s>bt.s;
	return al.id<bt.id;
}
int f(int Rnd)
{
	if(Rnd==0)
	{
		return oier[q].id;
	}
	for(int i=1;i<=n;i++)
	{
		if(oier[i*2].w>oier[i*2-1].w)
			swap(oier[i*2],oier[i*2-1]);
		oier[i*2-1].s++;
	}
	for(int i=1;i<n;i++)
	{
		if(cmp(oier[i*2+1],oier[i*2]))
		{
			swap(oier[i*2+1],oier[i*2]);
		}
	}
	return f(Rnd-1);
}
int main()
{
	ios::sync_with_stdio(0);
	cin >> n >> r >> q;
	for(int i=1;i<=2*n;i++)
	{
		cin >> oier[i].s;
	}
	for(int i=1;i<=2*n;i++)
	{
		cin >> oier[i].w;
		oier[i].id=i;
	}
	sort(oier+1,oier+2*n+1,cmp);
	cout << f(r);

	return 0;
}
2024/1/16 15:10
加载中...