Учитывая массив, нам нужно найти самый длинный непрерывный подмассив, который имеет один и тот же элемент в диапазоне от l до r для нескольких запросов. Например, ar [] = {1,2,2,2,4,3,1,1,3}.
Запрос 1: l = 1, r = 5, element = 2, вывод будетбудет 3
Запрос 2: l = 1, r = 5, элемент = 1, вывод будет 1
Запрос 3: l = 6, r = 9, элемент = 3, вывод будетбудет 1
Запрос 4: l = 6, r = 9, element = 1, выходной результат будет 2
Я могу запустить цикл от l до r и вычислить самое продолжительное непрерывное вхождениеданный элемент в ассортименте, но мне нужен лучший подход. Ограничения: 1 <= l, r, no. запросов, размер массива <= 100000 Вот мой код грубой силы: </p>
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
ll i,j,k,m,n,l,r,x;
n=9;
ll ar[n]={1,2,2,2,4,3,1,1,3};
ll query=4;//number of queries
while(query--)
{
cin>>l>>r>>x;
l--;r--;//changing to 0-based indexing
ll ctr=0;
ll ans=0;
for(i=l;i<=r;i++)
{
if(ar[i]==x)
{
ctr++;
}
else ctr=0;
ans=max(ctr,ans);
}
cout<<ans<<endl;
}
}