#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ii pair<ll,ll>
#define fi first
#define se second
#define endl '\n'
#define puf push_front
#define pof pop_front
#define pub push_back
#define pob pop_back
#define lb lower_bound
#define ub upper_bound
#define rep(x,s,e) for (auto x=s-(s>e);x!=e-(s>e);s<e?x++:x--)
#define all(x) (x).begin(),(x).end()
#define sz(x) (int) (x).size()
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int n,q;
int arr[500005];
vector<int> keys[500005];
ii queries[500005];
bool ans[500005];
int lpos[500005];
int rpos[500005];
int has[500005];
int bad[500005];
int main(){
cin.tie(0);
cout.tie(0);
cin.sync_with_stdio(false);
cin>>n;
rep(x,1,n) cin>>arr[x];
int a,b;
rep(x,1,n+1){
cin>>a;
rep(y,0,a){
cin>>b;
keys[x].pub(b);
}
}
cin>>q;
rep(x,0,q) cin>>queries[x].fi>>queries[x].se;
rep(zzz,0,2){ //change to 2 later
rep(x,0,500005) has[x]=1e9;
rep(x,n,1){
for (auto &it:keys[x+1]) has[it]=x+1;
lpos[x]=has[arr[x]];
}
rep(x,0,500005) has[x]=-1e9;
rep(x,1,n){
for (auto &it:keys[x]) has[it]=x;
rpos[x+1]=has[arr[x]];
}
//rep(x,1,n+1) cout<<lpos[x]<<" "; cout<<endl;
//rep(x,1,n+1) cout<<rpos[x]<<" "; cout<<endl;
memset(bad,-1,sizeof(bad));
rep(x,1,n){
rep(y,x+1,n+1){
if (lpos[x]>=y && x>=rpos[y]) bad[x]=y;
}
if (lpos[x]==1e9) bad[x]=1e9;
}
//rep(x,1,n+1) cout<<bad[x]<<" "; cout<<endl<<endl;
rep(x,0,q) if (queries[x].se<queries[x].fi){
//cout<<"query: "<<x<<endl;
bool can=true;
rep(y,queries[x].se,queries[x].fi){
//cout<<y<<" "<<bad[y]<<endl;
if (queries[x].fi<bad[y]) can=false;
}
ans[x]=can;
}
//flip shit now
reverse(arr+1,arr+n);
reverse(keys+1,keys+n+1);
rep(x,0,q) tie(queries[x].fi,queries[x].se)=ii(n-queries[x].fi+1,n-queries[x].se+1);
}
rep(x,0,q){
if (ans[x]) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
30 ms |
16204 KB |
Output is correct |
2 |
Correct |
33 ms |
16220 KB |
Output is correct |
3 |
Correct |
64 ms |
16204 KB |
Output is correct |
4 |
Correct |
23 ms |
16124 KB |
Output is correct |
5 |
Correct |
26 ms |
16212 KB |
Output is correct |
6 |
Correct |
23 ms |
16188 KB |
Output is correct |
7 |
Correct |
21 ms |
16180 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
30 ms |
16204 KB |
Output is correct |
2 |
Correct |
33 ms |
16220 KB |
Output is correct |
3 |
Correct |
64 ms |
16204 KB |
Output is correct |
4 |
Correct |
23 ms |
16124 KB |
Output is correct |
5 |
Correct |
26 ms |
16212 KB |
Output is correct |
6 |
Correct |
23 ms |
16188 KB |
Output is correct |
7 |
Correct |
21 ms |
16180 KB |
Output is correct |
8 |
Correct |
469 ms |
25860 KB |
Output is correct |
9 |
Correct |
492 ms |
25788 KB |
Output is correct |
10 |
Correct |
628 ms |
25976 KB |
Output is correct |
11 |
Correct |
981 ms |
26180 KB |
Output is correct |
12 |
Correct |
311 ms |
26100 KB |
Output is correct |
13 |
Correct |
166 ms |
26064 KB |
Output is correct |
14 |
Correct |
168 ms |
26108 KB |
Output is correct |
15 |
Correct |
285 ms |
26308 KB |
Output is correct |
16 |
Correct |
576 ms |
26360 KB |
Output is correct |
17 |
Correct |
167 ms |
26108 KB |
Output is correct |
18 |
Correct |
186 ms |
26140 KB |
Output is correct |
19 |
Correct |
199 ms |
26060 KB |
Output is correct |
20 |
Correct |
431 ms |
26192 KB |
Output is correct |
21 |
Correct |
586 ms |
26316 KB |
Output is correct |
22 |
Correct |
323 ms |
26104 KB |
Output is correct |
23 |
Correct |
254 ms |
25924 KB |
Output is correct |
24 |
Correct |
255 ms |
26052 KB |
Output is correct |
25 |
Correct |
245 ms |
25920 KB |
Output is correct |
26 |
Correct |
220 ms |
25912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
3058 ms |
28856 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
30 ms |
16204 KB |
Output is correct |
2 |
Correct |
33 ms |
16220 KB |
Output is correct |
3 |
Correct |
64 ms |
16204 KB |
Output is correct |
4 |
Correct |
23 ms |
16124 KB |
Output is correct |
5 |
Correct |
26 ms |
16212 KB |
Output is correct |
6 |
Correct |
23 ms |
16188 KB |
Output is correct |
7 |
Correct |
21 ms |
16180 KB |
Output is correct |
8 |
Correct |
469 ms |
25860 KB |
Output is correct |
9 |
Correct |
492 ms |
25788 KB |
Output is correct |
10 |
Correct |
628 ms |
25976 KB |
Output is correct |
11 |
Correct |
981 ms |
26180 KB |
Output is correct |
12 |
Correct |
311 ms |
26100 KB |
Output is correct |
13 |
Correct |
166 ms |
26064 KB |
Output is correct |
14 |
Correct |
168 ms |
26108 KB |
Output is correct |
15 |
Correct |
285 ms |
26308 KB |
Output is correct |
16 |
Correct |
576 ms |
26360 KB |
Output is correct |
17 |
Correct |
167 ms |
26108 KB |
Output is correct |
18 |
Correct |
186 ms |
26140 KB |
Output is correct |
19 |
Correct |
199 ms |
26060 KB |
Output is correct |
20 |
Correct |
431 ms |
26192 KB |
Output is correct |
21 |
Correct |
586 ms |
26316 KB |
Output is correct |
22 |
Correct |
323 ms |
26104 KB |
Output is correct |
23 |
Correct |
254 ms |
25924 KB |
Output is correct |
24 |
Correct |
255 ms |
26052 KB |
Output is correct |
25 |
Correct |
245 ms |
25920 KB |
Output is correct |
26 |
Correct |
220 ms |
25912 KB |
Output is correct |
27 |
Execution timed out |
3058 ms |
28856 KB |
Time limit exceeded |
28 |
Halted |
0 ms |
0 KB |
- |