Submission #559288

#TimeUsernameProblemLanguageResultExecution timeMemory
559288leakedPastiri (COI20_pastiri)C++17
0 / 100
662 ms81904 KiB
#include <bits/stdc++.h> #define f first #define s second #define m_p make_pair #define vec vector #define pb push_back #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define sz(x) (int)(x).size() #define pw(x) (1LL<<(x)) using namespace std; typedef pair<int,int> pii; typedef long long ll; template<class T> bool umax(T &a,const T &b){return (a<b?a=b,1:0);} template<class T> bool umin(T &a,const T &b){return (a>b?a=b,1:0);} const int N=5e5+1; vec<int> gr[N]; bool used[N]; vec<int> g[N]; int d[N]; vec<int> have[N]; signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); fill(d,d+N,1e9); int n,k; cin>>n>>k; for(int i=1;i<n;i++){ int v,u; cin>>v>>u; g[v].pb(u);g[u].pb(v); } queue<int>q; for(int i=0;i<k;i++){ int v; cin>>v; d[v]=0; q.push(v); } // vec<int> vc; while(!q.empty()){ int v=q.front();q.pop(); for(auto &z : g[v]){ if(d[z]==1e9){ d[z]=d[v]+1; q.push(z); } } } for(int i=1;i<=n;i++){ for(auto &z : g[i]){ if(d[i]==d[z]+1) gr[i].pb(z); } have[d[i]].pb(i); } vec<int> ans; // vecE< for(int i=n-1;i>=0;i--){ for(auto &z : have[i]){ if(!used[z]){ used[z]=1; ans.pb(z); } for(auto &u : gr[z]) used[u]=1; } } cout<<sz(ans)<<endl; for(auto &z : ans) cout<<z<<' '; return 0; } /* 16 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...