为啥我全TLE?
#include <bits/stdc++.h>
#define N 200020
using namespace std;
int n, a[N], nxt[N], las[N], cnt, l[N], sum, to[N], r[N], opt[N];
int main ()
{
cin >> n; a[0] = -1;
for (int i = 1; i <= n; i++)
{
scanf ("%d", &a[i]);
if (a[i] != a[i-1])
{
nxt[cnt] = ++cnt, las[cnt] = cnt - 1;
l[cnt] = i, r[cnt-1] = i - 1; opt[cnt] = a[i];
} else to[i-1] = i;
}
opt[0] = 10;
while (sum < n)
{
for (int i = nxt[0]; i; i = nxt[i])
{
cout << l[i] << " "; l[i] = to[l[i]]; sum++;
}
for (int i = nxt[0]; i; i = nxt[i])
{
if (opt[las[i]] == opt[nxt[i]] && l[las[i]] && l[nxt[i]] && !l[i])
{
nxt[las[i]] = nxt[nxt[i]], las[nxt[nxt[i]]] = las[i];
to[r[las[i]]] = l[nxt[i]], r[las[i]] = r[nxt[i]];
} else if (!l[i])
{
nxt[las[i]] = nxt[i], las[nxt[i]] = las[i];
}
}
cout << endl;
}
return 0;
}