Untitled

 avatar
unknown
plain_text
a year ago
1.4 kB
3
Indexable
#pragma GCC optimize("O2,no-stack-protector,unroll-loops")
#define ll long long
#define pb push_back
#define ipar(arr, n) vector<ll> arr(n); for(int i=0;i<n;i++) cin>>arr[i];
#include <cmath>
#include <bits/stdc++.h>
#define pii pair<int, int>;
#define pll pair<ll, ll>;
using namespace std;
 
 
 
void solve(){
    ll n;cin>>n; ipar(arr,n);
   /*  vector<ll>leq(n,-1); //uneq[i] stores the index of uneqaul no just before i
 
    //O(N2)
    for(ll i=1;i<n;i++){
        for(ll j=i-1;j>=0;j--){
            if(arr[j]!=arr[i]) {
                leq[i]=j;
                break;
            }
        }
    }
 */
    //O(N)
    vector<ll>uneq(n,-1);
    ll largind=-1;
    for(ll i=1;i<n;i++){
        if(arr[i]==arr[i-1]){
            uneq[i]=largind;
        }
        else{
            largind=i-1;
            uneq[i]=largind;
        }
    }
    //for(auto i:uneq) cout<<i<<" ";
     ll q; cin>>q;
    while(q--){
        ll l,r; cin>>l>>r;
        l--,r--;
        //cout<<"--------------------"<<"\n";
        bool found=false;
        if(uneq[r]!=-1 && uneq[r]>=l){ // theres a unequal no available an it's within l
            cout<<uneq[r]+1<<" "<<r+1<<"\n";
            found=true;
        }
        
        if(!found) cout<<-1<<" "<<-1<<"\n";
    } 
}
 
 
signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int t;
	cin>>t;
	while(t--) solve();
}
Leave a Comment