관리 메뉴

기억을 위한 기록들

[백준 2670: 연속부분최대곱] - C++ 본문

Coding Test - cpp/DP

[백준 2670: 연속부분최대곱] - C++

에드윈H 2021. 2. 17. 12:53

www.acmicpc.net/problem/2670

 

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;


}