Pagini recente » Cod sursa (job #1693349) | Cod sursa (job #3261285) | Cod sursa (job #1545928) | Cod sursa (job #378766) | Cod sursa (job #2308543)
import sys
def read():
with open('scmax.in', 'r') as fin:
n = int(fin.readline())
v = []
line = fin.read()
for x in line.split(" "):
if x.isdigit():
v.append(int(x))
return n, v
def main():
n, v = read()
s = [1] * n
index = [0] * n
for i in range(0, n):
index[i] = i
for i in range(n - 2, -1, -1):
for j in range(i + 1, n):
if v[i] < v[j] and s[i] < s[j] + 1:
s[i] = s[j] + 1
index[i] = j
index_maxim = 0
max_s = 0
for i in range(0, n):
if max_s < s[i]:
max_s = s[i]
index_maxim = i
i = index_maxim
with open('scmax.out', 'w') as fout:
fout.write(str(max_s) + '\n')
while index[i] != i:
fout.write(str(v[i]) + " ")
i = index[i]
fout.write(str(v[i]) + " ")
sys.exit(0)
if __name__ == '__main__':
main()