码迷,mamicode.com
首页 > 其他好文 > 详细

codevs 1006 等差数列

时间:2017-05-14 13:58:38      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:include   接下来   algo   str   put   枚举   class   cin   main   

题目描述 Description

给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度.

输入描述 Input Description

第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000.

输出描述 Output Description

对于每个输入数据,输出你所找出的最长等差数列的长度

样例输入 Sample Input

7

3

8

4

5

6

2

2

样例输出 Sample Output

5

 

分析:

水题。。。排序+枚举即可。

 

#include<iostream>
#include<algorithm>
using namespace std;
int a[110],ans=1;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;++i)cin>>a[i];
    sort(a+1,a+n+1);
    for(int i=1;i<=n;++i)
    {
        for(int j=i+1;j<=n;++j)
        {
            int t=1;
            int m=a[j]-a[i],l=i;
            for(int k=i+1;k<=n;++k)
            {
                if(a[k]-a[l]==m)
                {
                    ++t;
                    l=k;
                }
            }
            ans=max(t,ans);
        }
    }
    cout<<ans;
    return 0;
    
}

 

 

 

 

codevs 1006 等差数列

标签:include   接下来   algo   str   put   枚举   class   cin   main   

原文地址:http://www.cnblogs.com/Dream-Runner/p/6852120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!