#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll N = 200000;
ll n , t , m; bool flag = true;
struct node {
int l , r , k , net , las;
}a[N];
int main () {
ios::sync_with_stdio (0);
cin.tie (0);
cout.tie (0);
cin >> n; a[0].k = 2;
for (int i = 1;i <= n;i ++) {
cin >> t;
if (t == a[m].k) continue;
a[m].r = i - 1;
a[m].net = m + 1;
m ++;
a[m].las = m - 1;
a[m].l = i;
a[m].k = t;
} a[m].r = n;
while ( flag ) {
flag = false;
for (int i = a[0].net ; i ; i = a[i].net) {
if (a[i].k != a[a[i].las].k) {
if (a[i].l <= a[i].r) {
cout << a[i].l << ' '; a[i].l ++; flag = true;
}
else {
a[a[i].las].net = a[i].net;
a[a[i].net].las = a[i].las;
}
}
}
cout << '\n';
}
return 0;
}
提交记录