#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using u32 = unsigned int;
using u64 = unsigned long long;
constexpr size_t MAXN = 266670;
static u32 f_val[MAXN], *f = f_val + (MAXN >> 1), *p0, *p1, *p2, *p3, *p4, *p5,
*p6, *p7, *lim;
#define upv(p) (*p = *(p - 1) + *(p + 1), p += 16)
u32 solve(int n, char * s) {
if (n & 1)
return 0;
*f = 1;
for (int i = 0; i < n; f[-1] = 0, i++) {
if (s[i] == '(')
f--;
else if (s[i] == ')')
f++;
else {
lim = f + std::min(i + 1, n - i - 1);
p0 = f + ((i & 1) ^ 1), p1 = p0 + 2, p2 = p1 + 2, p3 = p2 + 2,
p4 = p3 + 2, p5 = p4 + 2, p6 = p5 + 2, p7 = p6 + 2;
while (p7 <= lim) {
upv(p0), upv(p1), upv(p2), upv(p3), upv(p4), upv(p5), upv(p6), upv(p7);
}
while (p0 <= lim) {
*p0 = *(p0 - 1) + *(p0 + 1);
p0 += 2;
}
}
}
return *f;
}
Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
Testcase #1 | 91.11 us | 40 KB | Accepted | Score: 25 | 显示更多 |
Testcase #2 | 563.084 ms | 392 KB | Accepted | Score: 25 | 显示更多 |
Testcase #3 | 2.12 s | 700 KB | Accepted | Score: 25 | 显示更多 |
Testcase #4 | 3 s | 812 KB | Time Limit Exceeded | Score: 0 | 显示更多 |