제출 #1321126

#제출 시각아이디문제언어결과실행 시간메모리
1321126ivan_alexeevUnique Cities (JOI19_ho_t5)C++20
4 / 100
2094 ms15308 KiB
#include <bits/stdc++.h> using namespace std; #ifndef lisie_bimbi #define endl '\n' #pragma GCC optimize("O3") #pragma GCC target("avx,avx2,bmi2,fma") #endif using ll = long long; const ll inf = 1'000'000'000; vector<vector<int>> v; vector<int> c; void calcdist(int u, int par, vector<int> &d){ if(par == -1){ d[u] = 0; }else{ d[u] = d[par] + 1; } for(auto i : v[u]){ if(i != par){ calcdist(i, u, d); } } } int n; void solve(){ int m; cin >> n >> m; v.resize(n); for(int i = 0; i < n - 1; i++){ int x, y; cin >> x >> y; x--;y--; v[x].push_back(y); v[y].push_back(x); } c.resize(n); for(int i = 0; i < n; i++){ cin >> c[i]; } for(int i = 0; i < n; i++){ vector<int> d(n); calcdist(i, -1, d); vector<vector<int>> z(n); for(int j = 0; j < n; j++){ z[d[j]].push_back(c[j]); } set<int> cc; for(int zz = 1; zz < n; zz++){ auto j = z[zz]; if(j.size() == 1){ cc.insert(j[0]); } } cout << cc.size() << endl; } } signed main(){ #ifdef lisie_bimbi freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #else #endif cin.tie(nullptr)->sync_with_stdio(false); int t = 1; //cin >> t; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...