Processing math: 100%

Tunnelbaneplatser

Baltic Olympiad in Informatics – programmeringstävlingen för länderna i östersjöregionen – kommer till våren att anordnas i Stockholm, och deltagarna kommer åka tunnelbana mellan vandrarhemmet och tävlingsarenan.

På tunnelbanetågen finns det sätesgrupper med fyra säten vardera. Nu kommer ett antal grupper av deltagare och vill sätta sig. Varje grupp har storlek 1, 2, 3 eller 4. Helst skulle alla personerna i en grupp vilja sitta i samma fyrsätesgrupp, alltså slippa dela på sig. Hur många fyrsätesgrupper krävs för att detta ska vara möjligt?

Indata

Indata består av en rad med fyra heltal a1,a2,a3,a4 – antalet grupper av varje storlek. Alla tal är mellan 0 och 100.

Utdata

Skriv ut ett enda tal: det minsta antalet fyrsätesgrupper som behövs för att personerna ska kunna sätta sig så att alla inom varje grupp sitter tillsammans.

Poängsättning

För testfall värda 20 poäng finns inga grupper av storlek 1.
För testfall värda 20 poäng finns inga grupper av storlek 2.
För testfall värda 20 poäng finns inga grupper av storlek 3.
För testfall värda 40 poäng gäller inga speciella begränsningar.

Förklaringar till exemplen

\includegraphics[width=7cm]{tunnelbana1.pdf}
En optimal placering i exempel 1 (streckade linjer avgränsar grupper av personer)

\includegraphics[width=7cm]{tunnelbana2.pdf}
En optimal placering i exempel 2.

\includegraphics[width=7cm]{tunnelbana3.pdf}
En optimal placering i exempel 3.

Sample Input 1 Sample Output 1
1 1 1 1
3
Sample Input 2 Sample Output 2
1 2 1 0
2
Sample Input 3 Sample Output 3
0 1 2 0
3