BZOJ 5127 [Lydsy12月赛]数据校验

2018.01.03

题目大意

求一个数列下标L~R的数是否满足每相邻两个数之间的差$\leq1$.


Emmmmmm......

傻题。

用前缀和维护,没啥好讲的= =

#include <cstdio>
#include <algorithm>
using namespace std;
#define N 100000
int v[N+1],ans[N+1];
int main()
{
	int n,m,l,r;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i) scanf("%d",v+i);
	for(int i=1;i<=n;++i)
	{
		ans[i]+=ans[i-1];
		if(v[i]>v[i-1]+1||v[i]<v[i-1]-1) ans[i]++;
	}
	while(m--)
	{
		scanf("%d%d",&l,&r);
		printf("%s\n",ans[r]==ans[l]?"YES":"NO");
	}
	return 0;
}