萌新调了2个多小时代码,求助
查看原帖
萌新调了2个多小时代码,求助
198719
洛璟楼主2021/2/4 11:31

应该是关于输出“0”的特判萎了,有没有大佬帮忙看看啊qaq

#include<bits/stdc++.h>
using namespace std;
#define int long long 
int n, m;
int a[1000010];
int gcd(int x, int y)
{
    if (x < y) swap(x, y);
    int a = x % y;
    if (a == 0) return x;
    return gcd(y, a);
}
inline int read()
{
    int x = 0, f = 1;
    char c = getchar();
    while (c < '0' || c>'9')
    {
        if (c == '-') f = -1;
        c = getchar();
    }
    while (c >= '0' && c <= '9')
    {
        x = (x << 3) + (x << 1) + (c ^ '0');
        c = getchar();
    }
    return x * f;
}
signed main()
{
    n = read();
    m = read();
    int g = 1, qaq = 1, gg = 1;
    int nw, pa;
    for (int i = 1;i <= n;i++)
    {
        a[i] = read();
        gg = __gcd(g, a[i]);
        g = g * a[i] / gg;
    }
    pa = (a[1] / 2) % 2;
    for (int i = 2;i <= n;i++)
    {
        nw = (a[i] / 2) % 2;
        if (nw != pa)
        {
            printf("0");
            return 0;
        }
    }
    qaq = g / 2;
    printf("%lld", (m - qaq) / g + 1);
    return 0;
}
2021/2/4 11:31
加载中...