Submission #518954

#TimeUsernameProblemLanguageResultExecution timeMemory
518954ParsaAlizadehUnique Cities (JOI19_ho_t5)C++17
4 / 100
260 ms3284 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; #define all(x) begin(x), end(x) #define kill(x) return cout << x << '\n', 0 #define fst first #define snd second void assume(int expr) { if (!expr) __builtin_unreachable(); } constexpr int N = 2e3 + 10; constexpr int MOD = 1e9 + 7; int n, m, C[N]; vector<int> adj[N]; vector<int> H[N]; void dfs(int u, int p, int h) { H[h].push_back(u); for (int v : adj[u]) if (v != p) dfs(v, u, h+1); } int main() { cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> m; for (int i = 0; i < n-1; i++) { int u, v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } for (int i = 1; i <= n; i++) { cin >> C[i]; } for (int i = 1; i <= n; i++) { dfs(i, 0, 0); set<int> st; for (int j = 1; j <= n; j++) { if (H[j].size() == 1) st.insert(C[H[j][0]]); H[j].clear(); } cout << st.size() << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...