水的我措不及防
阿新 • • 發佈:2019-01-13
問題 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; }