返回题解分享
讨论 / 题解分享/ 帖子详情

算术咒语 - 题解

#include<bits/stdc++.h>

using u32 = unsigned;
using i64 = long long;
using u64 = unsigned long long;
using i128 = __int128;

void solve() {
    int n;
    std::cin >> n;

    std::vector<i64> a(n);
    for (auto &i: a) {
        std::cin >> i;
    }
    std::sort(a.begin(), a.end());
    i128 ans = 1;
    for (auto i: a) {
        ans *= i;
        if (ans > 1000000000000000000) {
            std::cout << "-1\n";
            return;
        }
    }
    std::cout << (i64) ans << "\n";
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr), std::cout.tie(nullptr);

    int T = 1;
    // std::cin >> T;
    while (T--) {
        solve();
    }

    return 0;
}
0 回复 0 转发 2 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!