Миллион алых роз | 프로그래밍의 벗 PivotOJ
PivotOJ

Миллион алых роз

시간 제한: 1000ms메모리 제한: 1024MB출처: MOOI 2013-14 qualBOJ 30846

문제

Восьмое марта только началось, а перед входом в цветочный магазин «Аделина» уже выстроилась огромная очередь желающих приобрести букеты красивейших свежих алых роз. Хозяин магазина Александр понимал, что день сегодня предстоит нелегкий. Поэтому он решил предварительно узнать у каждого из ожидающих покупателей, сколько всего роз тот хотел бы приобрести. Полученные числа Александр аккуратно выписал на листок и понял, что в одиночку ему не справиться.

Чтобы ускорить процесс формирования букетов, хозяин магазина позвал на помощь своего коллегу Михаила. Александр показал ему полученный только что список и предложил выписать подпоследовательность размеров букетов, формированием которых Михаил готов заняться.

Михаила не интересует оптимальное распределение работы. Не интересуют его также максимальный, минимальный и даже средний размеры формируемых им букетов. Все, что он хочет знать, — количество различных непустых подпоследовательностей в списке Александра по модулю 109 + 7.

입력

В первой строке вводится целое число N — количество ожидающих покупателей (1 ⩽ N ⩽ ⩽ 1 000 000). Вторая строка содержит N натуральных чисел, i-е из которых описывает, сколько роз желает купить i-й человек в очереди (1 ⩽ ai ⩽ 1 000 000).

출력

Выведите ответ на вопрос, терзающий Михаила, — количество различных подпоследовательностей в составленном Александром списке по модулю 1 000 000 007 (109 + 7).

힌트

Подпоследовательностью {xnk} называется числовая последовательность, которая составлена из членов последовательности {xn} и в которой порядок следования ее элементов совпадает с их порядком следования в исходной последовательности {xn}.

В тесте из условия Михаил может найти следующие 13 различных подпоследовательностей: {1}, {1, 1}, {1, 1, 3}, {1, 2}, {1, 2, 1}, {1, 2, 1, 3}, {1, 2, 3}, {1, 3}, {2}, {2, 1}, {2, 1, 3}, {2, 3}, {3}.

예제

예제 1

입력
4
1 2 1 3
출력
13
코드를 제출하려면 로그인하세요.