# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
199470 | TadijaSebez | File Paths (BOI15_fil) | C++11 | 26 ms | 3960 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
const int N=6050;
const int K=1000050;
int par[N],len[N],dep[N];
vector<int> E[N];
int can[K];
int main(){
int n,m,k,s;
scanf("%i %i %i %i",&n,&m,&k,&s);
dep[0]=1;par[0]=-1;
for(int i=1;i<=n+m;i++){
scanf("%i %i",&par[i],&len[i]);
E[par[i]].pb(i);
dep[i]=dep[par[i]]+len[i]+(i<=n);
if(i<=n && dep[i]<K)can[dep[i]]++;
}
for(int i=1;i<=m;i++){
bool ok=0;
if(k==dep[n+i])ok=1;
//for(int j=1;j<=n;j++)if(dep[j]+dep[n+i]+s+1==k)ok=1;
for(int j=n+i;j!=-1;j=par[j])if(k-dep[n+i]+dep[j]-s-1>=0 && can[k-dep[n+i]+dep[j]-s-1])ok=1;
if(ok)printf("YES\n");
else printf("NO\n");
}
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |