Submission #1260917

#TimeUsernameProblemLanguageResultExecution timeMemory
1260917Szymon_PilipczukTourism (JOI23_tourism)C++20
10 / 100
5093 ms9632 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; #define st first #define nd second #define pb push_back #define all(a) a.begin(),a.end() #define rep(a,b) for(int a = 0;a<b;a++) const int inf = 1e9; const ll infl = 1e18; int ans; bool vis[100000]; unordered_set<int> e; vector<int> gr[100000]; bool dfs(int v) { vis[v] = true; bool a = false; if(e.contains(v)) { a = true; } for(int i : gr[v]) { if(!vis[i]) { if(dfs(i)) { a = true; ans++; } } } return a; } int c[100000]; int main() { int n,m,q; cin>>n>>m>>q; rep(i,n-1) { int a,b; cin>>a>>b; a--;b--; gr[a].pb(b); gr[b].pb(a); } rep(i,m) { cin>>c[i]; c[i]--; } rep(qq,q) { int l,r; cin>>l>>r; l--;r--; e.clear(); ans = 0; rep(i,n) { vis[i] = false; } for(int i = l;i<=r;i++) { e.insert(c[i]); } dfs(c[l]); cout<<ans+1<<"\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...