Submission #503742

#TimeUsernameProblemLanguageResultExecution timeMemory
503742Abrar_Al_SamitPower Plant (JOI20_power)C++17
0 / 100
3 ms4940 KiB
#include<bits/stdc++.h> using namespace std; const int MX = 200005; vector<int>g[MX]; int n; int sub[MX]; string s; int ans; int DFS(int v, int p=0) { int cnt = 0; bool hierOn = false; for(int u : g[v]) if(u!=p) { int get = DFS(u, v); if(get!=0) { ++cnt; if(get==2) hierOn = 1; } } if(hierOn) { sub[v] = 2; } else if(cnt>1) { sub[v] = 1; } else { if(s[v]=='1') { ++ans; if(cnt>0) sub[v] = 2; else sub[v] = 1; } else { sub[v] = cnt!=0; } } return sub[v]; } void PlayGround() { cin >> n; for(int i=1; i<n; ++i) { int u, v; cin >> u >> v; g[u].push_back(v); g[v].push_back(u); } cin >> s; s = "#" + s; DFS(1); cout << ans << endl; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); PlayGround(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...