2018年广东工业大学文远知行杯新生程序设计竞赛 1006 那天的延长线在今天β
Problem Description
In the world line 1.048596%
“梓川......今天是第几次了?”
双叶理央正在摆弄虹吸式咖啡壶,她看梓川咲太的目光已经不是傻眼或者嫌烦,而是带着悲悯。
“这次不是青春期症候群的事情,而是这个。”梓川拿出了『翔子小姐』的信件。
“寻求劈腿的方法?”
“不,不是这样,不要胡乱误解。”梓川咲太赶紧打住双叶理央的话“你认为我应该怎么说明才对?”
双叶理央想了一下,很快聪明的大脑得出了正确的答案。
“我知道了,不过在此之前”,双叶理央拿出一张A4纸大小的实验记录表格“上面是我做实验的数据序列,有n个数字吧,你帮我找到其中最长的连号子串长度。”
“最长的连号子串?”
“连号的定义是a[i] + 1 == a[i+1],在这样的定义下长度最少为2,也可能并没有所谓连号子串,那长度为1就行了。”
双叶理央正在滑手机,头也不抬的回答道。
梓川看了看写了密密麻麻的数据的表格,头皮有点发麻。但也只能硬着头皮做了。
“昨天看到信的时候,立刻找樱岛学姐商量就好了吧?你以事发突然的为难态度说明,就可以不经意当成是两人要面对的问题吧?”
写到一半的时候,双叶理央对咲太说出了这个答案。真是漂亮,但非常遗憾,这个手段已经没法使用了。
“双叶,为什么昨天没教我这个方法?”
“因为你没找我商量,然后你赶紧写吧,快来不及了。”
“什么来不及了?”
梓川咲太猜不透双叶理央的意图。
“刚刚在Line上,樱岛麻衣说她现在过来。”
Input
第一行一个整数T(T<=15),代表一共有T组样例。
对于每组样例:
第一行一个整数 n, 表示序列长度(1 <= n <= 10000)
第二行 n 个整数 a[i]。(0 <= a[i] <= 10000)
题目保证n的总和不超过30000.
Output
输出一个整数,表示最长的连号子串的长度。
Sample Input
2 5 1 2 3 5 6 3 1 3 2
Sample Output
3 1
#include<iostream>
#include<algorithm>
using namespace std;
int a[10000+10];
int main()
{
int n,m,j,k,i,T;
cin>>T;
while (T--)
{
cin>>n;
for (i=1;i<=n;i++)
cin>>a[i];
int ans = 1;
int sum=1;
for (i=1;i<=n-1;i++)
{
if (a[i]+1==a[i+1])
{
sum++;
}
else
{
ans = max(ans,sum);
sum = 1;
}
}
ans = max(sum,ans);
cout<<ans<<endl;
}
return 0;
}