社区讨论
救命!什么地方出问题了??
P5462X龙珠参与者 3已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mi86czj2
- 此快照首次捕获于
- 2025/11/21 09:21 4 个月前
- 此快照最后确认于
- 2025/11/21 09:21 4 个月前
只有10pts。。
5555
C#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a[N], n;
int q[N];
int b[N], num[N];
bool v[N];
int Next[N], pre[N];
int main() {
cin >> n;
int top = 0;
Next[0] = 1;
for (int i = 1;i <= n;i++) {
cin >> a[i];
num[a[i]] = i;
Next[a[i-1]] = i;
pre[a[i]] = i - 1;
}
for (int i = 1;i <= n;i++) {
b[i] = a[i];
}
sort(b+1,b+n+1);
reverse(b+1,b+n+1);
for (int i = 1;i <= n;i++) {
if(!v[b[i]] && Next[b[i]] != 0 && !v[a[Next[b[i]]]]) {
q[++top] = b[i];
q[++top] = a[Next[b[i]]];
v[b[i]] = 1;
v[a[Next[b[i]]]] = 1;
Next[a[pre[b[i]]]] = Next[a[Next[b[i]]]];
pre[a[Next[b[i]+1]]] = pre[b[i]];
}
}
for (int i = 1;i <= top;i++) cout << q[i] << " ";
cout << endl;
return 0;
}
回复
共 8 条回复,欢迎继续交流。
正在加载回复...