지금 정보올림피아드 문제풀고잇습니다.
한결
질문 제목 :
지금 정보올림피아드 문제 풀고잇습니다.
연속부분최대곱
[실행시간 1초]
N개의 양의 실수가 있을 때, 한 개 이상의 연속된 수들의 곱이 최대가 되는 부분을 찾아, 그 곱을 출력하는 프로그램을 작성하시오. 예를 들어 아래와 같이 8개의 양의 실수가 주어진다면,
색칠된 부분의 곱이 최대가 되며, 그 값은 1.638이다.첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다.
계산된 최대값을 소수점 이하 넷째 자리에서 반올림하여 소수점 이하 셋째 자리까지 출력한다.8
1.1
0.7
1.3
0.9
1.4
0.8
0.7
1.4
1.638
질문 내용 :
#includestdio.h
#includeiostream
#includefstream
#includealgorithm
#includestdlib.h
using namespace std;
int main()
{
//입출력//
ifstream fin;
ofstream fout; fin.open(input.txt);
fout.open(output.txt);
//입출력 끝//
//변수들//
int n;//양의 실수 N개(1이하의 자연수)
float narr[10000];//N개를 받아드릴 배열
float arr[10000];//Secret
int i,j,k,cnt=0;//for을 쓰기위한것..
float max=0,max2=0,max3;//최댓값을 만들어줌 그전에 만들어놈;;
//변수 끝// //프로그래밍시작//
finn;//개수를 받는다.
for(i=0;in;i++)
{
finnarr[i];
}
//여기까지 입출력///// for(i=0;in;i++)
{
for(j=i+1;jn-1;j++)
{
max3=narr[i];
for(k=i+1;k=j;k++)
{
if(cnt==0)
max3=max3*narr[k];
else
max3=narr[k]*max3;
cnt++; }
if(max3max2)
{
max2=max3;
}
}
if(max2max)
{
max=max2;
}
max2 = 0;
}
foutmax;}
여기서
정올에 올렷더니
틀렷다고 나오네요