比赛 2025.9.13 评测结果 AAAAAAAAAAAAAAAAAA
题目名称 The Best Lineup 最终得分 100
用户昵称 对立猫猫对立 运行时间 4.334 s
代码语言 C++ 内存使用 5.20 MiB
提交时间 2025-09-13 11:30:54
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n, T;
struct Node {
	int a, idx;
};
bool cmp(Node a, Node b) {
	if(a.a != b.a) return a.a > b.a;
	else return a.idx < b.idx;
}
Node a[200005];
int main() {
	freopen("Lineup.in", "r", stdin);
	freopen("Lineup.out", "w", stdout);
	cin >> T;
	while(T--) {
		memset(a, 0, sizeof a);
		cin >> n;
		for(int i = 1; i <= n; i++) cin >> a[i].a, a[i].idx = i;
		sort(a + 1, a + n + 1, cmp);
		int last1 = 0, last2 = 0;
		bool flag = 1;
		for(int i = 1; i <= n; i++) {
			if(a[i].idx > last1) {
				last2 = last1;
				last1 = a[i].idx;
				cout << a[i].a << " ";
			}
			else if(a[i].idx > last2 && flag) {
				last1 = a[i].idx;
				cout << a[i].a << " ";
				flag = 0;
			}
		}
		cout << endl;
	}
	return 0;
}