This commit is contained in:
Zengtudor 2024-10-06 23:38:08 +08:00
parent 675df5e825
commit 2ab924b825

View File

@ -0,0 +1,24 @@
#include <iostream>
#include <string>
using std::cin, std::cout, std::string;
using ull = unsigned long long;
constexpr size_t MAX_N {(size_t)3e5+5}, MOD {998244353};
string s;
ull left_ok[MAX_N], stk[MAX_N], stk_size, left_index[MAX_N], ans;
int main(){
cin>>s;
for(size_t i {1};i<=s.size();i++){
if(s[i-1]=='('){
stk[stk_size++] = i;
}else if(stk_size>0){
left_index[i] = stk[--stk_size];
left_ok[i] = (left_ok[left_index[i]-1] + left_index[i]) % MOD;
ans = ( ans + left_ok[i] * (s.size() - i + 1)) % MOD;
}
}
cout<<ans<<'\n';
}