1 条题解
-
0
C++ :
#include<iostream> #include<algorithm> using namespace std; /* 6 3 1 6 4 5 2 60 */ int sum(int a[],int start,int end){ int s = 0; for(int i=start;i<end;i++){ s+=a[i]; } return s; } int minDigit(int a[],int start,int end){ if((end-start)==1) return 1; else{ int min = 999999999; for(int i=start;i<end;i++){ if(min>a[i]) min = a[i]; } return min; } } int maxDigit(int a[],int len){ int max = -999999999; for(int i=0;i<len;i++){ for(int j=0,k=len-i;k<=len;j++,k++){ int s = sum(a,j,k); int min = minDigit(a,j,k); s*=min; if(max<s) max = s; /* for(int m=j;m<k;m++) cout<<a[m]<<" "; cout<<endl; cout<<minDigit(a,j,k)*sum(a,j,k)<<endl; */ } } return max; } int main(){ int n; while(cin>>n){ int *a = new int[n]; for(int i=0;i<n;i++){ cin>>a[i]; } cout<<maxDigit(a,n)<<endl; } return 0; }
Java :
import java.util.*; public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); while(in.hasNextInt()){ int n=in.nextInt(); int[] nn=new int[n]; for(int i=0;i<nn.length;i++) nn[i]=in.nextInt(); if(n==1) {System.out.println(nn[0]);continue;} int max=0,min,sum=0; for(int k=0;k<nn.length-1;k++){ for(int j=k+1;j<nn.length;j++){ min=nn[k]; sum=min; for(int h=k+1;h<=j;h++){ if(nn[h]<min) min=nn[h]; sum+=nn[h]; } if(max<sum*min) max=sum*min; } } System.out.println(max); } } }
- 1
信息
- ID
- 926
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者