1. 程式人生 > >水的我措不及防

水的我措不及防

問題 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;
}