2 条题解
-
1
#include<queue> #include<math.h> #include<stdio.h> #include<iostream> #include<vector> #include<iomanip> #include<algorithm> #include<cstdio> #include<utility> #include<cstring> #include<stack> #include<fstream> #include<string> using namespace std; #define LL long long const int N = 1e5 + 10; const int INF = 0x3f3f3f3f; int t , n , a; int sumz , sumf , sum0; long long zup[6] , zdown[6] , fup[6] , fdown[6]; long long maxn; void init() { sumz = 0; sumf = 0; sum0 = 0; memset( zup , 20005 , sizeof(zup) ); memset( zdown , -20005 , sizeof(zdown) ); memset( fup , 20005 , sizeof(fup) ); memset( fdown , -20005 , sizeof(fdown) ); maxn =- 20005; return; } bool cmp_up( int a , int b ) { return a < b; } bool cmp_down( int a , int b ) { return a > b; } int main() { cin >> t; for ( int s = 1 ; s <= t ; s++ ) { cin >> n; init(); for ( int i = 1 ; i <= n ; i++ ) { cin >> a; if ( a > 0 ) { sumz++; zup[5] = a; zdown[5] = a; sort( zup + 1 , zup + 6 , cmp_up ); sort( zdown + 1 , zdown + 6 , cmp_down ); } else if ( a == 0 ) { sum0++; } else if ( a < 0 ) { sumf++; fup[5] = a; fdown[5] = a; sort( fup + 1 , fup + 6 , cmp_up ); sort( fdown + 1 , fdown + 6 , cmp_down ); } } if ( sum0 > 0 ) { maxn = max( maxn , (long long)0 ); } if ( sumz >= 4 ) { maxn = max( maxn , zdown[1] * zdown[2] * zdown[3] * zdown[4] ); } if ( sumz >= 3 && sumf >= 1 ) { maxn = max( maxn , zup[1] * zup[2] * zup[3] * fdown[1] ); } if ( sumz >= 2 && sumf >= 2 ) { maxn = max( maxn , zdown[1] * zdown[2] * fup[1] * fup[2] ); } if ( sumz >= 1 && sumf >= 3 ) { maxn = max( maxn , zup[1] * fdown[1] * fdown[2] * fdown[3] ); } if ( sumf >= 4 ) { maxn = max( maxn , fup[1] * fup[2] * fup[3] * fup[4] ); } cout << maxn << endl; } return 0; }
-
-1
#include<bits/stdc++.h> using namespace std; int t,n,a; int sumz,sumf,sum0; long long zup[6],zdown[6],fup[6],fdown[6]; long long maxn; void init(){ sumz=0; sumf=0; sum0=0; memset(zup,20005,sizeof(zup)); memset(zdown,-20005,sizeof(zdown)); memset(fup,20005,sizeof(fup)); memset(fdown,-20005,sizeof(fdown)); maxn=-20005; return; } bool cmp_up(int a,int b){//i return a<b; } bool cmp_down(int a,int b){ return a>b; } int main(){ cin>>t; for(int s=1;s<=t;s++){ cin>>n; init(); for(int i=1;i<=n;i++){ cin>>a; if(a>0){ sumz++; zup[5]=a; zdown[5]=a; sort(zup+1,zup+6,cmp_up); sort(zdown+1,zdown+6,cmp_down); }else if(a==0)sum0++; else if(a<0){ sumf++; fup[5]=a; fdown[5]=a; sort(fup+1,fup+6,cmp_up); sort(fdown+1,fdown+6,cmp_down); } } if(sum0>0)maxn=max(maxn,(long long)0); if(sumz>=4)maxn=max(maxn,zdown[1]*zdown[2]*zdown[3]*zdown[4]); if(sumz>=3&&sumf>=1)maxn=max(maxn,zup[1]*zup[2]*zup[3]*fdown[1]); if(sumz>=2&&sumf>=2)maxn=max(maxn,zdown[1]*zdown[2]*fup[1]*fup[2]); if(sumz>=1&&sumf>=3)maxn=max(maxn,zup[1]*fdown[1]*fdown[2]*fdown[3]); if(sumf>=4)maxn=max(maxn,fup[1]*fup[2]*fup[3]*fup[4]); cout<<maxn<<endl; } return 0; }
- 1
信息
- ID
- 2983
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 8
- 标签
- 递交数
- 256
- 已通过
- 34
- 上传者