2 条题解

  • 3
    @ 2025-4-11 10:38:56
    #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
      @ 2025-4-11 12:12:32
      #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
      上传者