11059 - Maximum Product
来源:互联网 发布:淘宝会员v等级 编辑:程序博客网 时间:2024/06/05 22:47
Given a sequence of integers S = {S1, S2, . . . , Sn}, you should determine what is the value of the
maximum positive product involving consecutive terms of S. If you cannot find a positive sequence,
you should consider 0 as the value of the maximum product.
Input
Each test case starts with 1 ≤ N ≤ 18, the number of elements in a sequence. Each element Si
is
an integer such that −10 ≤ Si ≤ 10. Next line will have N integers, representing the value of each
element in the sequence. There is a blank line after each test case. The input is terminated by end of
file (EOF).
Output
For each test case you must print the message: ‘Case #M: The maximum product is P.’, where
M is the number of the test case, starting from 1, and P is the value of the maximum product. After
each test case you must print a blank line.
Sample Input
3
2 4 -3
5
2 5 -1 2 -1
Sample Output
Case #1: The maximum product is 8.
Case #2: The maximum product is 20.
对于每个数,都设置以此数结尾的最大正数pos和最小负数neg,
当data[i]是正数的时候,pos=pos*data[i],neg=neg*data[i]
当data[i]是0的时候,pos=neg=0;
当data[i]是负数的时候,neg*data[i]为最大正数,pos*data[i]就是最小负数,
每次循环更新 maxn;
注意数据范围 用long long
#include <iostream>#include<cstdio>#include<cstring>using namespace std;int data[20];int main(){ int n,num=0; while(scanf("%d",&n)!=EOF && n) { for(int i=1;i<=n;i++) scanf("%d",&data[i]); long long maxn=0,neg=0,pos=0; for(int i=1;i<=n;i++) { if(data[i]>0) { pos=pos*data[i]; neg=neg*data[i]; if(pos==0) pos=data[i]; } if(data[i]==0) pos=neg=0; if(data[i]<0) { long long temp=pos*data[i]; pos=neg*data[i]; neg=temp; if(neg==0) neg=data[i]; } if(maxn<pos) maxn=pos; } printf("Case #%d: The maximum product is %lld.\n\n",++num,maxn); } return 0;}
- 11059 - Maximum Product(暴力)
- UVA - 11059 Maximum Product
- UVa 11059 - Maximum Product
- UVa 11059 - Maximum Product
- UVa 11059 - Maximum Product
- Uva 11059 Maximum Product
- UVA - 11059 Maximum Product
- uva 11059 Maximum Product
- 11059 - Maximum Product
- 11059 - Maximum Product
- UVa 11059 Maximum Product
- Uva - 11059 - Maximum Product
- UVA - 11059 Maximum Product
- uva 11059Maximum Product
- Uva 11059 Maximum Product
- Maximum Product(UVa 11059)
- UVA 11059 Maximum Product
- 11059 - Maximum Product
- 一直觉得饿是什么问题
- java构造函数
- android中weight的简单使用
- iOS协议代理
- VC创建桌面快捷方式-VC6.0/VS2010均通过
- 11059 - Maximum Product
- Eclipse更新android sdk adt慢的处理方法
- 去除 ListView 上下边界蓝色或黄色阴影
- NYOJ 115 城市平乱(最短路--dijkstra)
- PAT Basic level practice 18
- sun.misc.BASE64Encoder报错
- android 沉浸式布局学习
- C语言堆栈入门——堆和栈的区别
- 网络编程基础