Submission #1083724

#TimeUsernameProblemLanguageResultExecution timeMemory
1083724rayan_bdRegions (IOI09_regions)C++17
0 / 100
997 ms131072 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define ll long long const int mxN = 2e5 + 5000; ll st[mxN],en[mxN],hd[mxN],tin=0; set<ll> adj[mxN]; map<ll,vector<ll>> same; map<ll,ll> seg[mxN*4]; void answer(ll ans){ cout.flush()<<ans<<'\n'; cout.flush(); } void dfs(ll u=0,ll par=-1){ st[u]=++tin; for(auto it:adj[u]){ if(it^par){ dfs(it,u); } } en[u]=tin; } void upd(ll node,ll start,ll end,ll idx,ll x){ ++seg[node][x]; if(start==end) return; ll mid=start+(end-start)/2; if(idx<=mid) upd(node*2+1,start,mid,idx,x); else upd(node*2+2,mid+1,end,idx,x); } ll qry(ll node,ll start,ll end,ll l,ll r,ll x){ if(start>r||end<l) return 0; if(start>=l&&end<=r) return seg[node][x]; ll mid=start+(end-start)/2; return qry(node*2+1,start,mid,l,r,x)+qry(node*2+2,mid+1,end,l,r,x); } void Solve(){ ll n,k,q,r1,r2,ans=0,super;cin>>n>>k>>q; cin>>hd[0]; same[hd[0]].pb(0); for(ll i=1;i<n;++i){ cin>>super>>hd[i];--super; adj[i].insert(super); adj[super].insert(i); same[hd[i]].pb(i); } dfs(); for(ll i=1;i<=n;++i){ upd(0,1,n,st[i],hd[i]); } while(q--){ cin>>r1>>r2; ans=0; for(auto it:same[hd[r1]]){ ans+=qry(0,1,n,st[it],en[it],r2); } answer(ans); } } void testing(){ #ifndef ONLINE_JUDGE freopen("input.in","r",stdin); freopen("output.out","w",stdout); #endif } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); Solve(); }

Compilation message (stderr)

regions.cpp: In function 'void testing()':
regions.cpp:77:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   77 |     freopen("input.in","r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
regions.cpp:78:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   78 |     freopen("output.out","w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...