#include<bits/stdc++.h>
using namespace std;
#define int long long
vector<vector<int>> g;
vector<int> a , b;
vector<int>tour;
vector<int>ans , cnt1 , cnt2;
void dfs(int u , int p , int cnt0){
cnt0+=cnt1[u];
ans[u] =cnt0;
cnt0+=cnt2[u];
for(auto v : g[u]){
if(v == p) continue;
dfs(v , u , cnt0);
}
}
signed main(){
int n , m;
cin>>n>>m;
g.resize(n+1);
a.resize(n) , b.resize(n);
ans.resize(n);
cnt1.resize(n) , cnt2.resize(n);
for(int i = 0 ; i < m; i++){
int u , v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
int k;
cin>>k;
for(int i = 0 ; i < k ;i++){
cin>>a[i]>>b[i];
cnt1[a[i]]++;
cnt2[b[i]]--;
}
dfs(0 , -1,0);
// for(int i = 0; i < n; i++)cout << cnt1[i] << " " << cnt2[i] << " " <<ans[i]<<"\n";
cout<<max_element(ans.begin() , ans.end()) - ans.begin();
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |