#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define pb push_back
#define int long long
#define fi first
#define se second
const int N = 3e5 + 5, M = 1e9 + 7, LG = 20;
int n , A[N] , k , q , l , r;
map<pair<int,int> , int> mp , ch , pr;
void solve(){
cin >> n >> k >> q;
for (int i=1 ; i<=n ; i++){
cin >> A[i];
}
while(q--){
cin >> l >> r;
if (pr[{l,r}]){
if (mp[{l,r}] == 1){
cout << "YES" << endl;
}else{
cout << "NO" << endl;
}
}else{
for (int i=l ; i<r ; i++){
if (A[i] == A[i+1]){
pr[{l,r}] = 2;
break;
}
if ((i-l+1)&1){
if (mp[{A[i],A[i+1]}]){
pr[{l,r}] = 2;
break;
}
ch[{A[i],A[i+1]}] = 1;
}else{
if (ch[{A[i],A[i+1]}]){
pr[{l,r}] = 2;
break;
}
mp[{A[i],A[i+1]}] = 1;
}
}
if (pr[{l,r}] == 2){
cout << "NO" << endl;
}else{
pr[{l,r}] = 1;
cout << "YES" << endl;
}
}
}
}
signed main(){
// freopen("" , "r" , stdin);
// freopen("" , "w" , stdout);
// cout << setprecision(30);
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int ts = 1;
// cin >> ts;
while(ts--){
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |