Submission #704113

#TimeUsernameProblemLanguageResultExecution timeMemory
7041131075508020060209tcUnique Cities (JOI19_ho_t5)C++14
4 / 100
2055 ms39020 KiB
//#pragma GCC optimize("O3")
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define X first
#define Y second
int n;int m;
int ar[500005];
vector<int>e[500005];
vector<int>freq[500005];
int dph[500005];

void dfs(int nw,int pa){
dph[nw]=dph[pa]+1;
freq[dph[nw]].push_back(nw);
for(int i=0;i<e[nw].size();i++){
    int v=e[nw][i];
    if(v==pa){continue;}
    dfs(v,nw);
}
}


void solve(int rt){
dfs(rt,0);
set<int>st;
for(int i=2;i<=n;i++){
    if(freq[i].size()==1){
        st.insert(ar[freq[i][0]]);
    }
    freq[i].clear();
}
cout<<st.size()<<endl;
}



signed main(){
cin>>n>>m;
for(int i=1;i<=n-1;i++){
    int a;int b;
    cin>>a>>b;
    e[a].push_back(b);
    e[b].push_back(a);
}
for(int i=1;i<=n;i++){
    cin>>ar[i];
}
for(int i=1;i<=n;i++){
    solve(i);
}



}

Compilation message (stderr)

joi2019_ho_t5.cpp: In function 'void dfs(long long int, long long int)':
joi2019_ho_t5.cpp:16:14: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 | for(int i=0;i<e[nw].size();i++){
      |             ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...