Submission #1101852

#TimeUsernameProblemLanguageResultExecution timeMemory
1101852irmuunLong Mansion (JOI17_long_mansion)C++17
10 / 100
3046 ms12376 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n; cin>>n; ll c[n+5]; for(ll i=1;i<n;i++){ cin>>c[i]; } ll b[n+5]; vector<vector<ll>>key(n+5); for(ll i=1;i<=n;i++){ cin>>b[i]; key[i].resize(b[i]); for(ll j=0;j<b[i];j++){ cin>>key[i][j]; } } vector<bool>have(n+1,0); auto add=[&](ll x) ->void{ for(ll k:key[x]){ have[k]=true; } }; ll L[n+5],R[n+5]; for(ll i=1;i<=n;i++){ ll l=i,r=i; fill(all(have),0); add(i); while(l>1||r<n){ if(l>1&&have[c[l-1]]){ l--; add(l); } else if(r<n&&have[c[r]]){ r++; add(r); } else{ break; } } L[i]=l; R[i]=r; } ll q; cin>>q; while(q--){ ll x,y; cin>>x>>y; if(L[x]<=y&&y<=R[x]){ cout<<"YES\n"; } else{ cout<<"NO\n"; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...