Submission #1100355

#TimeUsernameProblemLanguageResultExecution timeMemory
1100355vjudge1Regions (IOI09_regions)C++17
0 / 100
1154 ms72520 KiB
#include<bits/stdc++.h> using namespace std; int n,r,q,ly[200005],h[200005],dp[2505][2505]; vector<int>v[200005],c[200005]; void dfs(int x) { for(auto i:v[x]) { if(ly[x]>ly[i])continue; dfs(i); if(h[x]!=h[i])dp[h[x]][h[i]]++; for(int y=1;y<=r;y++) { if(h[i]==y||h[x]==y)continue; dp[h[x]][y]+=dp[h[i]][y]; } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin>>n>>r>>q; int hm,sp; cin>>hm; h[1]=hm; c[hm].push_back(1); for(int x=2;x<=n;x++) { cin>>sp>>hm; v[sp].push_back(x); v[x].push_back(sp); h[x]=hm; ly[x]=ly[sp]+1; c[hm].push_back(x); } dfs(1); while(q--) { int l,r; cin>>l>>r; cout<<dp[l][r]<<'\n'<<flush; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...