시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 (추가 시간 없음) 1024 MB (추가 메모리 없음)34322019171.269%

문제

$N$개의 마을이 일렬로 1번부터 $N$번까지 순서대로 산등성이를 따라 있다. 각 마을의 높이는 1 이상 $N$ 이하의 자연수 중 하나이며 서로 다르다. 외침을 막기 위해 마을을 여러 구간으로 나누어, 각 구간의 가장 높은 마을에 봉화대를 설치하려 한다. 각 구간은 하나 이상의 연속된 마을을 포함해야 하고, 각 마을은 정확히 하나의 구간에 포함되어야 한다. 봉화대의 효율적인 상호 통신을 위해, 봉화대가 설치된 마을의 높이는 번호의 오름차순으로 봤을 때 증가해야 한다. 전략 도모를 위해 가능한 구간 배치의 개수를 파악해보고자 한다.

그림 H.1: 조건을 만족한 봉화대 설치 예시 그림 H.2: 조건을 만족하지 않은 봉화대 설치 예시

입력

첫째 줄에는 마을의 개수를 의미하는 정수 $N$이 주어진다. ($1 \leq N \leq 500\ 000$)

둘째 줄에는 각 마을의 높이를 의미하는 $N$개의 정수 $h_1, h_2, \cdots, h_N$이 공백으로 구분되어 주어진다. ($1 \leq h_i \leq N$)

$h_i$는 $i$번째 마을의 높이를 의미하며 서로 다르다.

출력

조건을 만족하며 $N$개의 마을을 구간으로 나누는 방법의 가짓수를 $1\ 000\ 000\ 007$로 나눈 나머지를 출력한다.

예제 입력 1

5
1 4 2 5 3

예제 출력 1

6

예제 입력 2

3
3 2 1

예제 출력 2

1

예제 입력 3

8
6 3 1 7 2 5 4 8

예제 출력 3

20

힌트

첫 번째 예제의 가능한 모든 배치는 (1 / 4 / 2 5 3),  (1 / 4 2 / 5 3), (1 / 4 2  5 3), (1 4 / 2 5 3), (1 4 2 /  5 3), (1 4 2 5 3) 이다. /는 구간의 경계이며, 봉화대는 밑줄로 강조된 높이의 마을에 설치된다.

W3sicHJvYmxlbV9pZCI6IjIyODgwIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViZDA5XHVkNjU0XHViMzAwIiwiZGVzY3JpcHRpb24iOiI8cD4kTiRcdWFjMWNcdWM3NTggXHViOWM4XHVjNzQ0XHVjNzc0IFx1Yzc3Y1x1YjgyY1x1Yjg1YyAxXHViYzg4XHViZDgwXHVkMTMwICROJFx1YmM4OFx1YWU0Y1x1YzljMCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHVjMGIwXHViNGYxXHVjMTMxXHVjNzc0XHViOTdjIFx1YjUzMFx1Yjc3YyBcdWM3ODhcdWIyZTQuIFx1YWMwMSBcdWI5YzhcdWM3NDRcdWM3NTggXHViMTkyXHVjNzc0XHViMjk0IDEgXHVjNzc0XHVjMGMxICROJCBcdWM3NzRcdWQ1NThcdWM3NTggXHVjNzkwXHVjNWYwXHVjMjE4IFx1YzkxMSBcdWQ1NThcdWIwOThcdWM3NzRcdWJhNzAgXHVjMTFjXHViODVjIFx1YjJlNFx1Yjk3NFx1YjJlNC4gXHVjNjc4XHVjZTY4XHVjNzQ0IFx1YjljOVx1YWUzMCBcdWM3MDRcdWQ1NzQgXHViOWM4XHVjNzQ0XHVjNzQ0IFx1YzVlY1x1YjdlYyBcdWFkNmNcdWFjMDRcdWM3M2NcdWI4NWMgXHViMDk4XHViMjA0XHVjNWI0LCBcdWFjMDEgXHVhZDZjXHVhYzA0XHVjNzU4IFx1YWMwMFx1YzdhNSBcdWIxOTJcdWM3NDAgXHViOWM4XHVjNzQ0XHVjNWQwIFx1YmQwOVx1ZDY1NFx1YjMwMFx1Yjk3YyBcdWMxMjRcdWNlNThcdWQ1NThcdWI4MjQgXHVkNTVjXHViMmU0LiBcdWFjMDEgXHVhZDZjXHVhYzA0XHVjNzQwIFx1ZDU1OFx1YjA5OCBcdWM3NzRcdWMwYzFcdWM3NTggXHVjNWYwXHVjMThkXHViNDFjIFx1YjljOFx1Yzc0NFx1Yzc0NCBcdWQzZWNcdWQ1NjhcdWQ1NzRcdWM1N2MgXHVkNTU4XHVhY2UwLCBcdWFjMDEgXHViOWM4XHVjNzQ0XHVjNzQwIFx1YzgxNVx1ZDY1NVx1ZDc4OCBcdWQ1NThcdWIwOThcdWM3NTggXHVhZDZjXHVhYzA0XHVjNWQwIFx1ZDNlY1x1ZDU2OFx1YjQxOFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1YmQwOVx1ZDY1NFx1YjMwMFx1Yzc1OCBcdWQ2YThcdWM3MjhcdWM4MDFcdWM3NzggXHVjMGMxXHVkNjM4IFx1ZDFiNVx1YzJlMFx1Yzc0NCBcdWM3MDRcdWQ1NzQsIFx1YmQwOVx1ZDY1NFx1YjMwMFx1YWMwMCBcdWMxMjRcdWNlNThcdWI0MWMgXHViOWM4XHVjNzQ0XHVjNzU4IFx1YjE5Mlx1Yzc3NFx1YjI5NCBcdWJjODhcdWQ2MzhcdWM3NTggXHVjNjI0XHViOTg0XHVjYzI4XHVjMjFjXHVjNzNjXHViODVjIFx1YmQyNFx1Yzc0NCBcdWI1NGMgXHVjOTlkXHVhYzAwXHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHVjODA0XHViN2I1IFx1YjNjNFx1YmFhOFx1Yjk3YyBcdWM3MDRcdWQ1NzQgXHVhYzAwXHViMmE1XHVkNTVjIFx1YWQ2Y1x1YWMwNCBcdWJjMzBcdWNlNThcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1ZDMwY1x1YzU0NVx1ZDU3NFx1YmNmNFx1YWNlMFx1Yzc5MCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRkLWNlbnRlclwiPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvNzdmYjJkYzUtNWZkYi00OGI5LWIwNDYtZGViMDRlN2NmNTYxXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiA0ODBweDsgaGVpZ2h0OiAzMjBweDtcIiBcLz48XC90ZD5cclxuXHRcdFx0PHRkPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvY2M0NWI3MzAtZmVhNC00OTZlLTg0ODYtM2U5MmYzMWE1OTIzXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiA0ODBweDsgaGVpZ2h0OiAzMjBweDtcIiBcLz48XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+XHVhZGY4XHViOWJjIEguMTogXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1YyBcdWJkMDlcdWQ2NTRcdWIzMDAgXHVjMTI0XHVjZTU4IFx1YzYwOFx1YzJkYzxcL3RkPlxyXG5cdFx0XHQ8dGQ+XHVhZGY4XHViOWJjIEguMjogXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YzljMCBcdWM1NGFcdWM3NDAgXHViZDA5XHVkNjU0XHViMzAwIFx1YzEyNFx1Y2U1OCBcdWM2MDhcdWMyZGM8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjljOFx1Yzc0NFx1Yzc1OCBcdWFjMWNcdWMyMThcdWI5N2MgXHVjNzU4XHViYmY4XHVkNTU4XHViMjk0IFx1YzgxNVx1YzIxOCAkTiRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoJDEgXFxsZXEgTiBcXGxlcSA1MDBcXCAwMDAkKTxcL3A+XHJcblxyXG48cD5cdWI0NThcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YWMwMSBcdWI5YzhcdWM3NDRcdWM3NTggXHViMTkyXHVjNzc0XHViOTdjIFx1Yzc1OFx1YmJmOFx1ZDU1OFx1YjI5NCAkTiRcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4ICRoXzEsIGhfMiwgXFxjZG90cywgaF9OJFx1Yzc3NCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gKCQxIFxcbGVxIGhfaSBcXGxlcSBOJCk8XC9wPlxyXG5cclxuPHA+JGhfaSRcdWIyOTQgJGkkXHViYzg4XHVjOWY4IFx1YjljOFx1Yzc0NFx1Yzc1OCBcdWIxOTJcdWM3NzRcdWI5N2MgXHVjNzU4XHViYmY4XHVkNTU4XHViYTcwIFx1YzExY1x1Yjg1YyBcdWIyZTRcdWI5NzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YmE3MCAkTiRcdWFjMWNcdWM3NTggXHViOWM4XHVjNzQ0XHVjNzQ0IFx1YWQ2Y1x1YWMwNFx1YzczY1x1Yjg1YyBcdWIwOThcdWIyMDRcdWIyOTQgXHViYzI5XHViYzk1XHVjNzU4IFx1YWMwMFx1YzlkM1x1YzIxOFx1Yjk3YyAkMVxcIDAwMFxcIDAwMFxcIDAwNyRcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IjxwPlx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjNjA4XHVjODFjXHVjNzU4IFx1YWMwMFx1YjJhNVx1ZDU1YyBcdWJhYThcdWI0ZTAgXHViYzMwXHVjZTU4XHViMjk0ICg8dT4xPFwvdT4gXC8gPHU+NDxcL3U+IFwvIDIgPHU+NTxcL3U+IDMpLCAmbmJzcDsoPHU+MTxcL3U+IFwvIDx1PjQ8XC91PiAyIFwvIDx1PjU8XC91PiAzKSwgKDx1PjE8XC91PiBcLyA0IDIgJm5ic3A7PHU+NTxcL3U+IDMpLCAoMSA8dT40PFwvdT4gXC8gMiA8dT41PFwvdT4gMyksICgxIDx1PjQ8XC91PiAyIFwvICZuYnNwOzx1PjU8XC91PiAzKSwgKDEgNCAyIDx1PjU8XC91PiAzKSBcdWM3NzRcdWIyZTQuIFwvXHViMjk0IFx1YWQ2Y1x1YWMwNFx1Yzc1OCBcdWFjYmRcdWFjYzRcdWM3NzRcdWJhNzAsIFx1YmQwOVx1ZDY1NFx1YjMwMFx1YjI5NCBcdWJjMTFcdWM5MDRcdWI4NWMgXHVhYzE1XHVjODcwXHViNDFjIFx1YjE5Mlx1Yzc3NFx1Yzc1OCBcdWI5YzhcdWM3NDRcdWM1ZDAgXHVjMTI0XHVjZTU4XHViNDFjXHViMmU0LjxcL3A+XHJcbiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMjI4ODAiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJCZWFjb24gVG93ZXJzIiwiZGVzY3JpcHRpb24iOiI8cD5UaGVyZSBhcmUmbmJzcDskTiQmbmJzcDt2aWxsYWdlcyBpbiBhIHJvdywgbnVtYmVyZWQgZnJvbSZuYnNwOyQxJCZuYnNwO3RvJm5ic3A7JE4kLiBWaWxsYWdlJm5ic3A7JDEkJm5ic3A7aXMgdGhlIGxlZnRtb3N0IHZpbGxhZ2UgYW5kIHZpbGxhZ2UmbmJzcDskTiQmbmJzcDtpcyB0aGUgcmlnaHRtb3N0IHZpbGxhZ2UuIFRoZSBoZWlnaHRzIG9mIHRoZSB2aWxsYWdlcyBhcmUgZGlzdGluY3QgaW50ZWdlcnMgcmFuZ2luZyBmcm9tJm5ic3A7JDEkJm5ic3A7dG8mbmJzcDskTiQuPFwvcD5cclxuXHJcbjxwPllvdSB3b3VsZCBsaWtlIHRvIGRpdmlkZSB0aGUgdmlsbGFnZXMgaW50byBzZXZlcmFsIHNlZ21lbnRzLiBFYWNoIHNlZ21lbnQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSB2aWxsYWdlIGFuZCBldmVyeSB2aWxsYWdlIHNob3VsZCBiZWxvbmcgdG8gZXhhY3RseSBvbmUgc2VnbWVudC4gSWYgdHdvIHZpbGxhZ2VzIGFyZSBpbiB0aGUgc2FtZSBzZWdtZW50LCB0aGVuIGFsbCB2aWxsYWdlcyBpbiBiZXR3ZWVuIHRoZW0gbXVzdCBhbHNvIGJlIGluIHRoYXQgc2VnbWVudC48XC9wPlxyXG5cclxuPHA+SW4gZWFjaCBzZWdtZW50LCBhIGJlYWNvbiB3aWxsIGJlIGluc3RhbGxlZCBpbiB0aGUgdmlsbGFnZSB3aXRoIHRoZSBoaWdoZXN0IGhlaWdodC4gRm9yIGVmZmljaWVudCBtdXR1YWwgY29tbXVuaWNhdGlvbiBhbW9uZyBiZWFjb24gdG93ZXJzLCB0aGUgaGVpZ2h0cyBvZiB0aGUgdmlsbGFnZXMgd2hlcmUgdGhlIGJlYWNvbiB0b3dlcnMgYXJlIGluc3RhbGxlZCBtdXN0IGZvcm0gYW4gaW5jcmVhc2luZyBzZXF1ZW5jZSBmcm9tIGxlZnQgdG8gcmlnaHQuPFwvcD5cclxuXHJcbjxwPlBsZWFzZSBjb3VudCB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIHNlZ21lbnQgZGl2aXNpb25zIHRoYXQgd2lsbCBjYXVzZSB0aGUgYmVhY29uIHRvd2VycyB0byBzYXRpc2Z5IHRoZSBnaXZlbiBjb25zdHJhaW50cy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIGNvbnRhaW5zIGFuIGludGVnZXImbmJzcDskTiQmbmJzcDtyZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiB2aWxsYWdlcyAoJDEgXFxsZXEgTiBcXGxlcSA1MDBcXCwwMDAkKS4gVGhlIHNlY29uZCBsaW5lIGNvbnRhaW5zJm5ic3A7JE4kJm5ic3A7aW50ZWdlcnMmbmJzcDskaF8xLCBoXzIsIFxcY2RvdHMsIGhfTiQmbmJzcDtyZXByZXNlbnRpbmcgdGhlIGhlaWdodHMgb2YgdmlsbGFnZXMmbmJzcDskMSwgMiwgXFxsZG90cywgTiQuICgkMSBcXGxlcSBoX2kgXFxsZXEgTiQpLiBBbGwmbmJzcDskaF9pJCYjMzk7cyBhcmUgZGlzdGluY3QuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+Q291bnQgdGhlIG51bWJlciBvZiBwb3NzaWJsZSBzZWdtZW50IGRpdmlzaW9ucyB0aGF0IHdpbGwgY2F1c2UgdGhlIGJlYWNvbiB0b3dlcnMgdG8gc2F0aXNmeSB0aGUgZ2l2ZW4gY29uc3RyYWludHMuIEFzIHRoZSBhbnN3ZXIgY291bGQgYmUgbGFyZ2UsIHBsZWFzZSBvdXRwdXQgdGhlIGFuc3dlciBtb2R1bG8mbmJzcDskMTBeOSArIDckLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=