이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
from bisect import *
n,x = map(int, input().split())
arr = list(map(int, input().split()))
sussy2 = [0 for i in range(n)]
sussy = [0 for i in range(n)]
def LIS(lis):
dp = []
cur = n-1
for i in lis:
sus = bisect_left(dp,i)
if sus==len(dp):
dp.append(i)
else:
dp[sus] = i
sussy2[cur] = len(dp)
cur-=1
return len(dp)
def LIS2(lis):
dp = []
cur = 0
for i in lis:
sus = bisect_left(dp,i)
if sus==len(dp):
dp.append(i)
else:
dp[sus] = i
sussy[cur] = len(dp)
cur+=1
return len(dp)
LIS2(arr)
arr = [-i for i in arr]
arr.reverse()
LIS(arr)
ans = 0
for i in range(n-1):
ans = max(ans, sussy[i]+sussy2[i+1])
print(ans)
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |