Submission #1167038

#TimeUsernameProblemLanguageResultExecution timeMemory
1167038WH8Alternating Heights (CCO22_day1problem1)C++20
4 / 25
371 ms4488 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define g0(x) get<0>(x) #define g1(x) get<1>(x) #define g2(x) get<2>(x) #define mp make_pair #define pb push_back #define int long long #define f first #define s second #define pll pair<long long, long long> signed main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,k,q;cin>>n>>k>>q; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; a[i]--; } int mxr[n]; for(int i=0;i<n;i++){ int j=i+1; map<int,map<int,int>> rel; for(;j<n;j++){ int sup=((j-i)%2? 1: -1); if(a[j-1]==a[j])break; int cur=rel[a[j-1]][a[j]]; //~ if(i==1) cout<<sup<<" "<<cur<<endl; if(cur==-sup){ break; } rel[a[j-1]][a[j]]=sup; rel[a[j]][a[j-1]]=-sup; } mxr[i]=j-1; } //~ for(int i=0;i<n;i++)cout<<mxr[i]<<" "; //~ cout<<endl; for(int i=0;i<q;i++){ int l, r; cin>>l>>r; l--, r--; if (mxr[l] >= r)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...