題目描述 輸入n個正整數,(1<=n<=10000),要求輸出最長的連號的長度。(連號指從小到大連續自然數) 輸入輸出格式 輸入格式: 第一行,一個數n; 第二行,n個正整數,之間用空格隔開。 輸出格式: 一個數,最長連號的個數。 輸入輸出樣例 輸入樣例#1: 10 3 5 6 2 3 4 5 6 ...
題目描述
輸入n個正整數,(1<=n<=10000),要求輸出最長的連號的長度。(連號指從小到大連續自然數)
輸入輸出格式
輸入格式:
第一行,一個數n;
第二行,n個正整數,之間用空格隔開。
輸出格式:
一個數,最長連號的個數。
輸入輸出樣例
輸入樣例#1:10 3 5 6 2 3 4 5 6 8 9輸出樣例#1:
5
這麼水的題第一次交居然只得20分。。
感覺需要思考一下人生了233333
在if判斷失效的時候不要忘了把now置成1
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #define ls k<<1 6 #define rs k<<1|1 7 using namespace std; 8 const int MAXN=400400; 9 inline void read(int &n) 10 { 11 char c=getchar();n=0;bool flag=0; 12 while(c<'0'||c>'9') c=='-'?flag=1,c=getchar():c=getchar(); 13 while(c>='0'&&c<='9') n=n*10+c-48,c=getchar();flag==1?n=-n:n=n; 14 } 15 int a[MAXN]; 16 int main() 17 { 18 int n; 19 read(n); 20 for(int i=1;i<=n;i++) read(a[i]); 21 int now=1; 22 int ans=1; 23 for(int i=1;i<=n-1;i++) 24 { 25 if(a[i+1]-a[i]!=1) 26 ans=max(ans,now),now=1; 27 else now++; 28 } 29 printf("%d",ans); 30 return 0; 31 }