PROG0341 - Chocolate game
Alice and Bob are chocoholics and have invented their own chocolate game. At the start of each new game, they put $n$ chocolate bars in a row. Alice starts to eat the chocolate bars one by one from left to right, and Bob does the same from right to left. Alice and Bob eat the bars with equal speed, and for each chocolate bar it is known how long it takes to consume it (some bars take longer than others). When a player has consumed a chocolate bar, he or she immediately starts with the next in line. The rules of the game do not allow a player to eat two chocolate bars at the same time, to leave a bar unfinished and to make pauses. If both players can start eating the same bar simultaneously, Bob leaves it to Alice as a true gentleman.
How many chocolate bars will Alice and Bob have consumed at the end of a game?
Assignment
Write a function chocolateBars that takes a list of strict positive integers as its argument. Each number in this list represents the time needed to eat the chocolate bar at the corresponding position. The function must return a tuple $(a, b)$, where $a$ is the number of chocolate bars consumed by Alice at the end of the game and $b$ the number of chocolate bars consumed by Bob.
Example
>>> chocolateBars([2, 9, 8, 2, 7]) (2, 3) >>> chocolateBars([1, 2, 3, 4, 3, 2, 1]) (4, 3)
Alice en Bob hebben zelf een spelletje uitgevonden, waarbij ze $n$ chocoladerepen achter elkaar plaatsen. Alice begint de chocoladerepen één na één op te eten van links naar rechts, en Bob doet hetzelfde van rechts naar links. Alice en Bob eten even snel, en van elke chocoladereep is op voorhand geweten hoeveel tijd er nodig is om ze op te eten. Als Alice of Bob een chocoladereep volledig heeft opgegeten, dan begint zij/hij onmiddellijk de volgende op te eten. Bij hun spelletje is het niet toegelaten om twee chocoladerepen terzelfdertijd op te eten, chocoladerepen maar half op te eten, of pauzes in te lassen. Als beiden op hetzelfde moment dezelfde chocoladereep willen opeten, dan is Bob de hoffelijkheid zelve en laat Alice voorgaan.
Hoeveel chocoladerepen hebben Alice en Bob elk opgegeten op het einde van het spelletje?
Opgave
Schrijf een functie chocoladerepen waaraan een lijst van strikt positieve natuurlijke getallen moet doorgegeven worden. De getallen in deze lijst stellen telkens de tijd voor die nodig is om de chocoladereep op de corresponderende positie volledig op te eten. De functie moet een tuple $(a, b)$ teruggeven, waarbij $a$ het aantal chocoladerepen is dat Alice heeft opgegeten op het einde van het spelletje en $b$ het aantal chocoladerepen dat Bob heeft opgegeten.
Voorbeeld
>>> chocoladerepen([2, 9, 8, 2, 7]) (2, 3) >>> chocoladerepen([1, 2, 3, 4, 3, 2, 1]) (4, 3)
Added by: | Peter Dawyndt |
Date: | 2013-03-02 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |