Not Equal on a Segment CodeForces - 622C

特殊處理!學習一發


#include <bits/stdc++.h>

using namespace std; 

const int N = 2e5+10; 
int pre[N]; 
int data[N]; 
int main()
{
	int n,q; 
	int h,t,val; 
	cin>>n>>q; 
	for ( int i=1; i<=n; i++ ) {
		scanf("%d",&data[i]); 
		if ( data[i]==data[i-1] ) pre[i] = pre[i-1]; 
		else pre[i] = i ; 
	}
	while ( q-- )
	{
		scanf("%d%d%d",&h,&t,&val);
		
		if ( data[t]==val ) {
			if ( pre[t]==pre[h] ) printf("-1\n"); 
			else printf("%d\n",pre[t]-1); 	
		}
		else {
			printf("%d\n",t); 
		}
		
	}
	return 0; 
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章