这题还是很不理解,只会送的那几个暴力分,能讲讲这做法是为什么吗?
#include <iostream>
using namespace std;
const int N = 100010;
int n;
int L[N], R[N], a[N];
int main()
{
cin >> n;
for (int i = 1; i <= n; ++i)
{
int x;
cin >> x;
a[x] = i;//
}
for (int i = 1; i <= n; ++i)
{
R[i] = i + 1;//
L[i] = i - 1;
}
for (int i = 1; i <= n; ++i)
{
L[R[a[i]]] = L[a[i]];//
R[L[a[i]]] = R[a[i]];//
for(int j=1;j<=n;j++)
cout<<L[j]<<" ";
cout<<endl;
for(int j=1;j<=n;j++)
cout<<R[j]<<" ";
cout<<endl;
}
for (int i = 1; i <= n; ++i)
{
cout << R[i]<< " ";//
}
cout << endl;
return 0;
}