Submission #1097373

#TimeUsernameProblemLanguageResultExecution timeMemory
1097373Alihan_8Mergers (JOI19_mergers)C++17
0 / 100
138 ms262144 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, k; cin >> n >> k; vector <vector<int>> adj(n); for ( int i = 0; i + 1 < n; i++ ){ int u, v; cin >> u >> v; --u, --v; adj[u].pb(v); adj[v].pb(u); } vector <int> s(n); for ( auto &x: s ) cin >> x; vector <vector<int>> cnt(n, vector <int> (k + 1)); auto dfs = [&](auto dfs, int u, int p) -> void{ cnt[u][s[u]] = 1; for ( auto &v: adj[u] ){ if ( v != p ){ dfs(dfs, v, u); for ( int i = 1; i <= k; i++ ){ cnt[u][i] += cnt[v][i]; } } } }; dfs(dfs, 0, -1); int bad = 0; for ( int u = 0; u < n; u++ ){ bool flag = true; for ( int t = 1; t <= k; t++ ){ if ( cnt[u][t] > 0 && cnt[u][t] < cnt[0][t] ){ flag = false; } } bad += flag; } cout << bad / 2; cout << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...