Submission #1020203

#TimeUsernameProblemLanguageResultExecution timeMemory
1020203DucNguyen2007Zagrade (COI17_zagrade)C++14
30 / 100
46 ms14780 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pll pair<ll,ll> #define fi first #define se second const int maxN=3e5+5; const ll inf=2e18; int n; ll dp[maxN+1]; string s; vector<int> adj[maxN+1]; stack<int> st; void clr() { while(!st.empty()) { st.pop(); } } int main() { //freopen("zagrade.inp","r",stdin); //freopen("zagrade.out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>s; s=" "+s; for(int i=1;i<n;i++) { int u,v; cin>>u>>v; } for(int i=1;i<=n;i++) { if(s[i]=='(') { st.push(i); } else { if(!st.empty()&&s[st.top()]=='(') { dp[i]=dp[st.top()-1]+1; st.pop(); } else clr(); } } ll res=0; for(int i=1;i<=n;i++) { res+=dp[i]; } memset(dp,0,sizeof(dp)); clr(); for(int i=1;i<=n;i++) { if(s[i]==')') { st.push(i); } else { if(!st.empty()&&s[st.top()]==')') { dp[i]=dp[st.top()-1]+1; st.pop(); } else clr(); } } for(int i=1;i<=n;i++) { res+=dp[i]; } cout<<res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...