Submission #480302

#TimeUsernameProblemLanguageResultExecution timeMemory
480302BERNARB01Zagrade (COI17_zagrade)C++17
10 / 100
31 ms12080 KiB
#include <bits/stdc++.h> using namespace std; const int N = (int) 1e5 + 9; int n; string a; vector<int> g[N]; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n >> a; for (int i = 1; i < n; i++) { int u, v; cin >> u >> v; --u; --v; g[u].push_back(v); g[v].push_back(u); } if (n <= 1000) { function<int(int, int, int)> DFS = [&](int v, int pr, int bal) { bal += (a[v] == '(') - (a[v] == ')'); if (bal < 0) { return 0; } int ret = !bal; for (int u : g[v]) { if (u == pr) { continue; } ret += DFS(u, v, bal); } return ret; }; int ans = 0; for (int i = 0; i < n; i++) { ans += DFS(i, -1, 0); } cout << ans << '\n'; } else { assert(false); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...