Submission #1342253

#TimeUsernameProblemLanguageResultExecution timeMemory
1342253NipphitchUnique Cities (JOI19_ho_t5)C++20
4 / 100
217 ms616 KiB
#include <bits/stdc++.h>
using namespace std;
const int N=2005;

int n,m,a[N];
vector <int> adj[N];

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    if(n>2000){
        cout << -1;
        exit(0);
    }
    for(int i=1;i<n;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 >> a[i];
    for(int i=1;i<=n;i++){
        vector <int> color(n+1,-2);
        vector <bool> vis(n+1,false);
        queue <pair <int,int>> q;
        q.push({0,i});
        while(!q.empty()){
            auto [d_u,u]=q.front();
            q.pop();
            if(vis[u]) continue;
            vis[u]=true;
            if(d_u!=0 && color[d_u]==-2) color[d_u]=a[u];
            else if(d_u!=0) color[d_u]=-1;
            for(int v:adj[u]) q.push({d_u+1,v});
        }
        set <int> ans;
        for(int x:color) if(x>0) ans.insert(x);
        cout << ans.size() << "\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...