ABC070 C:Multiple Clocks

思わぬ罠。

https://atcoder.jp/contests/abc070/tasks/abc070_c

答えはすべての Ti における最小公倍数だというのはすぐにわかる。

だがオーバーフローを考慮していないライブラリを使ってしまったため、あえなくWA。

まあ過去問でライブラリの不備を見つけることができたので良しとする。

#define int long long

template <typename T>
T gcd(T a, T b) {
    return b ? gcd(b, a % b) : a;
}

template <typename T>
T lcm(T a, T b) {
    // return (a * b) / gcd(a, b); // overflow!
    T g = gcd(a, b);
    return a / g * b;
}

signed main() {
    int n;
    cin >> n;
    int ans = 1;
    rep(i, 0, n) {
        int t;
        cin >> t;
        ans = lcm<int>(ans, t);
    }
    cout << ans << endl;
}