Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <string>#include <vector>#include <cmath>#include <algorithm>using namespace std;char character[] = {'(', ')'};int mod = 1e9 + 7;pair<int, int> process(const string& str, int flag) {int len = str.size();vector<int> d;vector<vector<long long>> dp(len + 1, vector<long long>(len + 1, 0));vector<vector<long long>> presum(len + 1, vector<long long>(len + 1, 0));for (int i = 0; i < len; i++) {if (str[i] == character[flag]) {d.push_back(i);} else if (!d.empty()) {d.pop_back();}}if (d.empty()) {return {0, 1};}int preindex = d[0];int top = 0;