#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> P;
vector<P> q;
const int maxn = 3e5+10;
int a[maxn];
int dp[maxn];
void solve()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
if(a[i]==a[i-1])
{
dp[i]=dp[i-1];
continue;
}
int l=i-1;
while(l!=0)
{
if(a[l]!=a[i])
{
dp[i]=l;
break;
}
l--;
}
if(l==0)
{
dp[i]=1e9;
}
}
for(int i=1;i<=m;i++)
{
int u,v,w;
cin>>u>>v>>w;
if(a[v]==w&&dp[v]>=u&&dp[v]<v)
{
cout<<dp[v]<<endl;
}else if(a[v]!=w)
{
cout<<v<<endl;
}else
{
cout<<"-1"<<endl;
}
}
return;
}
int main()
{
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
// int t;
// cin>>t;
// while(t--)
// {
solve();
// }
}
不评价,思维水题
最新推荐文章于 2024-06-11 20:37:13 发布