def progress_rate1(v_i, x, k):
    """Returns the progress rate for a reaction (v_A)A+(v_B)B --> (v_C)C
    
    INPUTS
    ====== 
    v_i: a list of floats representing Stoichiometric coefficients of reactants
        ordered according to the reaction form, left to right
    x: a list of floats representing the concentration of each reactant and product
        ordered according to the reaction form, left to right
    k: float, reaction rate coefficient
        
    RETURNS
    =======
    progress rate for the reaction: a float
    
    EXAMPLES
    ========
    >>> progress_rate1([2.0, 1.0, 0.0], [1.0, 2.0, 3.0], 10)
    20.0
    """
    r=1
    
    if (len(v_i) != len(x)):
        raise ValueError("Lengths do not match.")
    
    for v, xi in zip(v_i, x):
        r *= xi**v
    w = k*r
    
    return w