Cod sursa(job #2701169)

Utilizator tavi255Varzaru Octavian Stefan tavi255 Data 29 ianuarie 2021 23:54:34
Problema Subsir crescator maximal Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.82 kb


def print_str(last_poz,v,poz):

    if last_poz!=0:

        print_str(poz[last_poz],v,poz)
        fout.write(str(v[last_poz])+" ")

if __name__ == '__main__':

    fin=open("scam.in","r")
    fout=open("scam.out","w")

    lines=fin.readlines()

    n=int(lines[0])

    v=[0]
    poz=[0]*(n+1)
    best=[0]*(n+1)
    last_poz=1
    best_s=1

    elems=lines[1].split()

    for elem in elems:

        elem=int(elem)

        v.append(elem)

    for i in range(1,n+1):

        best[i]=1
        for j in range(1,i):
            if v[j]<v[i] and best[j]+1>best[i]:
                best[i]=best[j]+1
                poz[i]=j

                if best_s<best[i]:
                    best_s=best[i]
                    last_poz=i

    fout.write(str(best_s)+"\n")
    print_str(last_poz,v,poz)