Codeforces 622C Not Equal on a Segment

题目链接:http://codeforces.com/problemset/problem/622/C


题意:给出一个大小为n的序列,给出一个区间[l,r]和c要求找出一个该区间内和c不一样的数,没有则输出-1


思路:将序列中相邻的数合并,因为是找不同的数,所以时间一下就得到了优化……


#include 
#include 
#include 
#include 
using namespace std;

int s[200030],sc[200030];

int main()
{
    int n,m;
    while (scanf("%d%d",&n,&m)!=EOF)
    {
        for (int i=1;i<=n;i++)
            scanf("%d",&s[i]);

        sc[n]=n;
        for (int i=n-1;i>0;i--)
        {
            if (s[i]==s[i+1])
                sc[i]=sc[i+1];
            else
                sc[i]=i;
        }

        for (int i=0;i


你可能感兴趣的:(Codefores,ACM_,brute,force)