求助大佬,整了三个多小时还是除1,3外都WA
查看原帖
求助大佬,整了三个多小时还是除1,3外都WA
924191
jinqianzzz楼主2023/1/14 16:31
#include <iostream>
using namespace std;
#include <algorithm>
struct Player
{
	int number;
	long long score;
	long long ability;
};
bool myCompare(struct Player& a, struct Player& b)
{
	if (a.score == b.score)
		return a.number < b.number;
	return a.score > b.score;
}
int main()
{
	int N, R, Q;
	struct Player arr[200005];
	struct Player win[200005];
	struct Player lose[200005];
	scanf("%d%d%d", &N, &R, &Q);
	for (int i = 0; i <2*N; i++)
	{
		arr[i].number = i+1;
		scanf("%lld",&arr[i].score);
	}
	for (int i = 0; i < 2 * N; i++)
	{
		scanf("%lld", &arr[i].ability);
	}
	sort(arr, arr + 2 * N, myCompare);
	while (R--)
	{
		for (int i = 0; i < 2*N; i+=2)
		{
			if (arr[i].ability >= arr[i+1].ability)
			{
				arr[i].score += 2;
				win[i / 2] = arr[i];
				lose[i / 2] = arr[i + 1];
			}
			else
			{
				arr[i+1].score += 2;
				win[i / 2] = arr[i + 1];
				lose[i / 2] = arr[i];
			}
		}
		merge(win,win+N,lose,lose+N, arr, myCompare);
	}
	printf("%d", arr[Q-1].number);
	return 0;
}


2023/1/14 16:31
加载中...