Een balans is een soort weegschaal die enkel aangeeft of zij al dan niet in evenwicht is (aan elke zijde van de arm hangt dan een gelijk gewicht).

Foto door Piret Ilver op Unsplash.

Je krijgt een reeks beschikbare gewichten en je moet een programma schrijven dat bepaalt of een balans met aan de ene zijde een bepaald testgewicht (in kilogram) in evenwicht kan gebracht worden door precies twee beschikbare gewichten aan de andere zijde van de balans te plaatsen.

Stel dat de volgende gewichten beschikbaar zijn (in kilogram): 3, 9, 7, 5 en 15 kg

Als er dan een testgewicht van 14 kg aan de ene zijde van de balans hangt, kunnen we deze in evenwicht brengen door de gewichten van 9 en 5 kilogram aan de andere zijde te plaatsen. Anderzijds kunnen we met die beschikbare gewichten de balans niet in evenwicht brengen wanneer er aan de ene zijde een testgewicht van 13 kilogram hangt. Ook voor bv. een testgewicht van 6 kilogram lukt dit niet aangezien we het beschikbare gewicht van 3 kilogram slechts éénmaal kunnen gebruiken

Opgave

Schrijf een functie in_balans(testgewicht, gewichten) dat True retourneert indien met exact twee gewichten het testgewicht gevormd kan worden. Retourneer anders False.

Voorbeelden

>>> in_balans(3, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
True
>>> in_balans(14, [3, 9, 7, 5])
True
>>> in_balans(13, [3, 9, 7, 5])
False
>>> in_balans(6, [3, 9, 7, 5])
False

Bron

Dit is een oefening uit de Vlaamse programmeerwedstrijd 2013 - categorie 1.