Coding Test - cpp/DP
[백준 2670: 연속부분최대곱] - C++
에드윈H
2021. 2. 17. 12:53
2670번: 연속부분최대곱
첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나
www.acmicpc.net
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
double arr[10001] = { 0.f };
double dp[10001] = { 0.f };
for (int i = 1; i <= n; i++)
{
cin >> arr[i];
}
dp[1] = arr[1];
double result = -1;
for (int i = 2; i <= n; i++)
{
dp[i] = max(arr[i], arr[i] * dp[i - 1]);
result = max(result, dp[i]);
}
printf("%.3f", result);
return 0;
}