已知本地测试无异常,算法在其他 OJ 上评测正常。
Wrong Answer because:
Wrong Answer.wrong answer On line 1 column 1, read (ASCII 0), expected A.
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 5;
string a, b;
struct node {
char c;
int l, r;
} t[N];
int cnt;
int search(int la, int ra, char x) {
for(int i = la; i <= ra; i++)
if(a[i] == x) return i;
return -1;
}
int work(int la, int ra, int lb, int rb) {
if(la > ra || lb > rb) return 0;
int m = search(la, ra, b[rb]), s1 = (m - 1) - la + 1, s2 = ra - (m + 1) + 1, tmp = (++cnt);
t[tmp] = {b[rb], work(la, m - 1, lb, lb + s1 - 1), work(m + 1, ra, (rb - 1) - s2 + 1, rb - 1)};
return tmp;
}
void dfs(int x) {
cout<<t[x].c;
if(t[x].l) dfs(t[x].l);
if(t[x].r) dfs(t[x].r);
}
signed main() {
cin>>a>>b;
work(0, a.length(), 0, a.length());
dfs(1);
cout<<endl;
return 0;
}