Submission #1297688

#TimeUsernameProblemLanguageResultExecution timeMemory
1297688chaitanyamehtaHotspot (NOI17_hotspot)C++20
0 / 100
1 ms332 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...