等差数列

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i = 0; i < n; i ++)
        scanf("%d", &a[i]);
    sort(a, a + n);
    int d = __gcd(a[1] - a[0], a[2] - a[1]);
    for(int i = 2; i < n - 1; i ++)
    {
        int t = a[i + 1] - a[i];
        d = __gcd(d, t);
    }
    if(d == 0) 
    {
        cout << n << endl;
        return 0;
    }
    printf("%d\n", max(n, (a[n - 1] - a[0]) / d + 1));
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务