포켓몬 거래

정해진 금액으로 어떤 날에 사서 더 뒤인 날에 팔아 이익이 최대가 되는 경우를 찾고, 소수 둘째 자리까지 반올림해 출력한다.

보통4배열그리디수학아직 제출이 없습니다시간 제한0.3초메모리 제한4 MB

문제

짐은 포켓몬을 좋아해서 포켓몬이 나오는 게임을 모두 해 본다. 지금 하는 것은 포켓몬 거래 게임이다. 짐은 앞으로 nn일 동안의 포켓몬 가격을 미리 알고 있다. 종류와 상관없이 포켓몬 한 마리의 값은 그날의 가격 하나로 정해진다.

짐은 정해진 액수의 돈을 가지고 시작한다. 하루를 골라 그날 가진 돈을 남김없이 다 써서 포켓몬을 사고, 그보다 뒤의 하루를 골라 산 포켓몬을 전부 판다. 포켓몬은 소수 마리 단위로도 살 수 있다. 파는 날은 사는 날보다 반드시 뒤여야 한다.

짐이 얻을 수 있는 최대 이익을 구하라. 어떻게 사고팔아도 손해라면 손해가 가장 적은 값을 구한다.

입력

첫째 줄에 짐이 가진 돈이 주어진다.

둘째 줄에 날의 수 nn이 주어진다. (1<n1061 < n \le 10^6)

셋째 줄부터 nn개의 가격이 날짜 순서대로 공백으로 구분되어 주어진다.

가진 돈과 각 가격은 10910^9 이하의 양의 실수이고, 소수점 아래 자릿수는 6자리를 넘지 않는다.

출력

첫째 줄에 최대 이익을 소수점 아래 둘째 자리까지 출력한다. 손해를 보는 경우에는 음수가 된다.

반올림은 0에서 먼 쪽으로 한다. 즉 0.0050.0050.01, 0.00490.00490.00, 0.005-0.005-0.01, 0.0049-0.0049-0.00이 된다. 이익이 00보다 작은데 반올림한 값의 크기가 00이면 -0.00을 출력한다.