def NombreBottomUp(V):
    S = [1,7,9]
    L = [0]*(V+1)
    valeurs = [0]*(V+1)
    
    for x in range(1,V+1):
        minimum = V + 1
        for i in range(len(S)):
            if (S[i] <= x) and (1+L[x-S[i]] < minimum):
                minimum = 1 + L[ x - S[i] ]
                v = i
        L[x] = minimum
        valeurs[x] = v
        
    x , R = V , [ ]
    
    while x > 0:
        R.append( S[ valeurs[x] ] )
        x -= S[ valeurs[x] ]

    return L[V] , R

print( NombreBottomUp(14) )
