Submission #826300

#TimeUsernameProblemLanguageResultExecution timeMemory
826300MohamedAhmed04Long Mansion (JOI17_long_mansion)C++14
10 / 100
764 ms10116 KiB
#include <bits/stdc++.h> using namespace std ; const int MAX = 5000 + 10 ; int arr[MAX] ; int n ; vector<int>v[MAX] ; bitset<MAX>s[MAX] ; int L[MAX] , R[MAX] ; int main() { ios_base::sync_with_stdio(0) ; cin.tie(0) ; cin>>n ; for(int i = 1 ; i <= n-1 ; ++i) cin>>arr[i] ; for(int i = 1 ; i <= n ; ++i) { int sz ; cin>>sz ; v[i].resize(sz) ; for(auto &x : v[i]) cin>>x , s[i][x] = 1 ; } for(int i = 1 ; i <= n ; ++i) L[i] = R[i] = i ; for(int k = 0 ; k < n+1 ; ++k) { for(int i = 1 ; i <= n ; ++i) { if(L[i]-1 >= 1 && s[i][arr[L[i]-1]]) L[i]-- , s[i] |= s[L[i]] ; if(R[i]+1 <= n && s[i][arr[R[i]]]) R[i]++ , s[i] |= s[R[i]] ; } } int q ; cin>>q ; while(q--) { int x , y ; cin>>x>>y ; if(y >= L[x] && y <= R[x]) cout<<"YES\n" ; else cout<<"NO\n" ; } return 0 ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...