제출 #1156965

#제출 시각아이디문제언어결과실행 시간메모리
1156965PacybwoahUnique Cities (JOI19_ho_t5)C++20
4 / 100
2096 ms14640 KiB
#include<iostream> #include<algorithm> #include<utility> #include<vector> #include<map> #include<cmath> #include<set> using namespace std; vector<vector<int>> graph; vector<vector<int>> dist; vector<int> col; void dfs(int node, int parent, int d){ dist[d].push_back(node); for(auto &x: graph[node]){ if(x == parent) continue; dfs(x, node, d + 1); } } int main(){ ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; graph.resize(n + 1); col.resize(n + 1); dist.resize(n + 1); for(int i = 1; i < n; i++){ int a, b; cin >> a >> b; graph[a].push_back(b); graph[b].push_back(a); } for(int i = 0; i < n; i++){ cin >> col[i + 1]; } for(int i = 1; i <= n; i++){ vector<vector<int>>().swap(dist); dist.resize(n + 1); dfs(i, i, 0); vector<int> cp; for(int j = 1; j <= n; j++){ if((int)dist[j].size() == 1){ cp.push_back(col[dist[j][0]]); } } sort(cp.begin(), cp.end()); cp.resize(unique(cp.begin(), cp.end()) - cp.begin()); cout << (int)cp.size() << "\n"; } } // g++ -std=c++17 -Wall -Wextra -Wshadow -fsanitize=undefined -fsanitize=address -o run pEsub1.cpp
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...