http://codeforces.com/problemset/problem/622/C
找出[l,r]中不等于x的任意位置输出
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[1000005];
int b[1000005];
int l,r,x;
int main(){
cin >> n >> m;
a[0]=0;
for (int i=1;i<=n;i++){
scanf("%d",&a[i]);
if (a[i]!=a[i-1]){
b[i]=i-1;
}
else{
b[i]=b[i-1];
}
}
for (int i=0;i<m;i++){
scanf("%d%d%d",&l,&r,&x);
if (a[r]!=x){
printf("%d\n",r);
}
else{
if (b[r]>=l){
printf("%d\n",b[r]);
}
else{
printf("-1\n");
}
}
}
}