水的我措不及防

问题 J: 困难题
时间限制: 1 Sec 内存限制: 128 MB
提交: 45 解决: 10
[提交] [状态] [讨论版] [命题人:admin]
题目描述

JATC和他的朋友Giraffe正在他们的房间里解决一些问题。Giraffe在黑板上写了一个数组a1 a2…一个整数,这样1≤a1 < a2 <…<≤10^3,然后去了浴室。

JATC决定通过删除数组中的一些连续元素来捉弄他的朋友Giraffe。因为他不想恶作剧太过火,所以他只会以一种方式进行擦除,这样长颈鹿仍然可以使用剩余元素的信息来恢复数组。因为Giraffe创建了数组,所以他也知道这是一个递增数组,所有元素都是范围[1,10^3]内的整数。

JATC想知道他能擦除的元素最多是多少?

输入

输入的第一行包含一个整数n (1≤n≤100) -数组中元素的数量。

第二行输入包含n个整数的ai (1≤a1 < a2 <⋯<≤10^3)——Giraffe写的数组。

输出

输出一个整数——JATC可以删除的数组中连续元素的最大数量。

如果连一个元素都无法清除,请输出0。

#include
#include
#include
#include
#include
#include
using namespace std;
int a[10000005]={0};
int b[10000]={0};
int main()
{
int i,n,j,k=1;
scanf("%d",&n);

        k=1;
        int sum=0; 
        int count;
        for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
        for(i=1;i<=n;i++)
        {
            count=1;
            for(j=i+1;j<=n;j++)
            {
                if(a[j]==(a[i]+1))
                {
                    if(a[i]==1)
                    count++;
                    if(a[j]==1000)
                    count++;
                    count++;
                    i++;
                //  printf("%d\n",count);
                }
                else
                break;
            }
            if(count>=3)
            {
                b[k++]=count-2;
            }
        }
         
        sort(b+1,b+k);
        printf("%d\n",b[k-1]);
     
 
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43916298/article/details/84989694