AC 46 个点,WA 11 个点,能否给组 Hack 数据?
Code:
#include <bits/stdc++.h>
using namespace std;
const int N = 400005;
int n, p[N], q[N];
char ans[N];
int main() {
scanf("%d", &n);
n <<= 1;
for (int i = 1; i <= n; ++i) scanf("%d", &p[i]);
for (int i = 1; i <= n; ++i) scanf("%d", &q[i]);
for (int i = 1; i < n; ++i) {
if (p[i] > p[i + 1]) {
if (ans[p[i]] == ')' || ans[p[i + 1]] == '(') return printf("%d", -1), 0;
ans[p[i]] = '(', ans[p[i + 1]] = ')';
}
}
for (int i = 1; i < n; ++i) {
if (q[i] < q[i + 1]) {
if (ans[q[i]] == ')' || ans[q[i + 1]] == '(') return printf("%d", -1), 0;
ans[q[i]] = '(', ans[q[i + 1]] = ')';
}
}
for (int i = 1; i <= n; ++i) if (!ans[i]) return printf("%d", -1), 0;
for (int i = 1; i <= n; ++i) printf("%c", ans[i]);
return 0;
}