WZOI-262时间之流

题目描述:

每个人的时间长河里面,都有几个重要的关键时间点,以数字的形式呈现在长河之中,当每个人的这些数字都聚集在一起的时候,就汇聚成了一条庞大的时间之流。

而你们的任务就是在这满是时间数字的流之中,选定部分时间数字相乘,并使其乘积最终的结果最大。

注意:时间数字之中可能会出现负数及0,他们代表一些人想要忘却的时间点。

由于时间的严谨,所有时间数字已经按照从小到大顺序升序排列。

输入格式:

第一行输入数N,表示有N个时间数字

第二行输入N个整数。

输出格式:

输出仅一行,即最大的乘积。

样例输入:

4
1 2 3 4

样例输出:

24

提示:

样例解释:

由于四个数都是正数,故其最大的乘积即四个数相乘,1*2*3*4=24.

1<=n<=100

保证最终的结果在long long范围内。

时间限制: 1000ms
空间限制: 256MB

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
 long long n,a[1001],s1=1,s=0,flag=0;
 cin>>n; 
 for(int i=0;i<n;i++){
  cin>>a[i];
  if(a[i]<0){
   s=i;
  }if(a[i]>0){
   s1=s1*a[i];
   flag++;
  }
 }
 if(n==1){
  cout<<a[0];
  return 0;
 }
 /*if(n==2){
  if(a[1]==0){
   cout<<0;
   return 0;
  }
 } */
 for(int i=0;i<s;i+=2){
  s1*=a[i]*a[i+1];
  flag++;
 }
 if(flag==0){
  cout<<0;
 }else{
  cout<<s1;
 }
 return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值