2 条题解
-
3
#include<bits/stdc++.h> using namespace std; #define int unsigned long long const int N=1e6+10,M=1e18; int a[N]; signed main() { int n,f=1; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; sort(a+1,a+n+1); if(!a[1]) { cout<<0; return 0; } for(int i=n;i>=1;i--) { if(f>(int)(M/a[i])) { f=0; break; } f=f*a[i]; } if(!f)cout<<-1<<'\n'; else cout<<f<<'\n'; }
-
2
#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; }
- 1
信息
- ID
- 333
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 2491
- 已通过
- 213
- 上传者