아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Выражение

시간 제한2초메모리 제한1024 MB

요약
0부터 10^9까지의 수 n개 사이에 괄호 없이 + 또는 *를 넣어 값을 최대로 만드는 식을 구해 출력합니다.
난이도

보통10점 중 7점

유형
그리디, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

Петя --- большой любитель математических головоломок. Недавно он прочитал в одном популярном журнале о новой головоломке. Он пытался ее решить несколько дней, но это ему так и не удалось. Помогите Пете справиться с неподдающейся задачей.

В ряд выписаны nn чисел. Требуется поставить между каждой парой соседних чисел один из знаков <<+>> или <<×\times>> таким образом, чтобы значение получившегося выражения было как можно больше. Использовать скобки не разрешается.

Например, для последовательности чисел 1,2,3,1,2,31, 2, 3, 1, 2, 3 оптимально расставить знаки следующим образом: 1+2×3×1×2×31 + 2 \times 3 \times 1 \times 2 \times 3. Значение выражения в этом случае равно 3737.

입력

Первая строка входного файла содержит число nn (2≤n≤200,0002 \le n \le 200\\,000). Вторая строка содержит nn целых чисел --- числа, между которыми следует расставить знаки. Все числа находятся в диапазоне от 0 до 10910^9.

출력

Выведите в выходной файл оптимальное выражение. В качестве знака <<×\times>> выводите символ <<*>> (звездочку). Если оптимальных решений несколько, выведите любое из них.

예제1

  1. 예제 1

    입력
    6
    1 2 3 1 2 3
    
    예상 출력
    1+2*3*1*2*3