def update(i,v):
while i<M:
fen[i] += v; fen[i] %= mod
i += i&-i
def cal(i):
s = 0
while i:
s += fen[i]; s %= mod
i -= i&-i
return s
def solve():
arr = [0]*(N+1)
for i in range(1,M):
for id in idx[i]:
arr[id] = cal(id)
for id in idx[i]:
update(id,count[id])
return arr
N = int(input()); M = 1<<17; mod = 10**9+7
seq = [*map(int,input().split())]
idx = [[] for i in range(M)]
for i in range(N):
idx[seq[i]].append(i+1)
count = [0]+[1]*N
for _ in range(10):
fen = [0]*M
count = solve()
print(sum(count)%mod)
카테고리 없음