UVA11059 Maximun Product 最大乘積
阿新 • • 發佈:2018-11-19
輸入n個元素組成的序列S,你需要找出一個乘積最大的連續子序列。如果這個最大的乘積不是正數,應輸出0(表示無解)。1n18,-10Si10。
解題方法:暴力破解,列出所有子串長度,然後搜尋,但是僅限這種題,因為長度很小,所以可以不考慮超時。
#include<iostream> #include <string> #include <string.h> #include<vector> #include<stack> #include<queue> #include<stdio.h> #include<stdlib.h> #include<iomanip> using namespace std; int main() { int n; int s[20]; #ifdef LOCAL freopen("data.in", "r", stdin); freopen("data.out", "w", stdout); #endif int kase = 0; while (scanf("%d", &n) != EOF) { for (int i = 0; i < n; i++) { cin >> s[i]; } long long int maxt=0; for(int z=1;z<=n;z++){ for (int i = 0; i+z <= n; i++) { long long int temp = 1; for (int j = i; j <i+ z; j++) { temp *= s[j]; } maxt = max(maxt, temp); } } printf("Case #%d: The maximum product is %lld.\n\n", ++kase, maxt); } //system("pause"); return 0; }