Partició. X59362


Statement
 

pdf   zip   main.py

Diem que un vector V té una partició si i només si es pot dividir en dues parts tals que la suma de cadascuna de les parts sigui igual a la suma de l’altra. Per dividir entenem que podem separar el vector en dues parts, tal que si tornem a unir-les, tornem a tenir el vector original (com si el talléssim per una posició).

Feu la funció particio(V) tal que, donat un vector d’enters V, torni cert si i només si V té una partició.

Per exemple, si tenim:

V = 4 3 2 5 1 1 1 1

la funció tornarà True ja que hi ha una partició del vector V: [4,3,2][4, 3, 2] i [5,1,1,1,1][5, 1, 1, 1, 1] tal que la suma de cadascuna de les parts és 99. En canvi, si tenim:

V = 1 3 2 5

la funció tornarà FALSE, ja que no hi ha cap partició tal que la suma de totes dues parts sigui igual. Per exemple, si partim el vector en: [1][1] i [3,2,5][3, 2, 5], [1,3][1, 3] i [2,5][2, 5] o [1,3,2][1, 3, 2] i [5][5], la suma de cadascuna de les parts és diferent.

Entrada

Un vector V d’enters.

Sortida

True si i només hi ha una partició del vector V.

Public test cases
  • Input

    1 3 2 5
    

    Output

    False
    
  • Input

    4 3 2 5 1 1 1 1
    

    Output

    True
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python