#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int Mid[100];
int Bac[100];
int Fro[100];
int oper(int MidId, int BacId, int FroId,int L) {
if (L == 0)
return 0;
if (L == 1) {
if (Mid[MidId] == Bac[BacId])
Fro[FroId] = Mid[MidId];
else
cout << "ERROR" << endl;
return 0;
}
int head = Bac[BacId + L - 1];
Fro[FroId] = head;
int L1 = 0;
for (int i = MidId; ; i++) {
if (Mid[i] == head) {
L1 = i - MidId;
break;
}
}
int L2 = L - L1 - 1;
int res1 = oper(MidId, BacId, FroId+1, L1);
int res2 = oper(MidId + L1 + 1, BacId + L1, FroId + L1+1, L2);
return res1*res2;
}
int main() {
memset(Fro, 0, sizeof(Fro));
cin >> Mid[0];
char c = getchar();
int L = 1;
while (c == ' ') {
cin >> Mid[L];
L++;
c = getchar();
}
cin >> Bac[0];
c = getchar();
L = 1;
while (c == ' ') {
cin >> Bac[L];
L++;
c = getchar();
}
oper(0, 0, 0, L);
int i = 0;
for (; i < L - 1; i++) {
cout << Fro[i] << ' ';
}
cout << Fro[i] << endl;;
return 0;
}
12-16
1032
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-13
07-13
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交