제출 #1306771

#제출 시각아이디문제언어결과실행 시간메모리
1306771hssaan_arifAlternating Heights (CCO22_day1problem1)C++20
0 / 25
1098 ms48420 KiB
#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--){ mp.clear(); ch.clear(); cin >> l >> r; if (pr[{l,r}]){ if (pr[{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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...