Submission #953145

#TimeUsernameProblemLanguageResultExecution timeMemory
953145PM1File Paths (BOI15_fil)C++17
33 / 100
29 ms3160 KiB
#include <bits/stdc++.h> using namespace std; const int mxn=3e3+5,mxs=1e6+5; int n,m,s,k,par[mxn*2],dis[mxn*2]; bitset<mxs>b[mxn*2]; vector<int>all,v[mxn]; bool mark[mxs],ans[mxn*2]; void make(int x,bool y){ int z=x; while(x!=0){ x=par[x]; int d=dis[z]-dis[x]; if(d<=k)mark[d]=y; } } void dfs(int z){ int y=par[z]; for(auto i:v[z]){ dfs(i); } } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m>>k>>s; s++; for(int i=1;i<=n+m;i++){ int x,y; cin>>x>>y; par[i]=x; dis[i]=dis[x]+y+1; if(i<=n){ all.push_back(dis[i]); v[x].push_back(i); } } all.push_back(0); for(int i=n+1;i<=n+m;i++){ make(i,1); if(dis[i]==k)ans[i]=1; for(auto j:all){ int res=k-j-s; if(res>=0 && mark[res])ans[i]=1; } make(i,0); } dfs(0); for(int i=n+1;i<=n+m;i++){ if(ans[i]) cout<<"YES"<<'\n'; else cout<<"NO"<<'\n'; } return 0; }

Compilation message (stderr)

fil.cpp: In function 'void dfs(int)':
fil.cpp:17:6: warning: unused variable 'y' [-Wunused-variable]
   17 |  int y=par[z];
      |      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...