LEGO Bricks Solution

$30.00

Description

The instructor’s kids love playing with LEGO. Just give them a box of these magical bricks and everything is awesome1.

Lately, they have been working on organizing their gigantic collection of bricks 2. As they were sorting their 1x1, 2x1, 3x1and 4x1 bricks, however, they got side-tracked with the following problem:

Given a collection of 1x1, 2x1, and 3x1, and 4x1 bricks, at least how many 4x1 rows are required to hold all the pieces?

Note, the kids are very particular and only want the bricks in a horizontal orientation.

For example, given 3 1x1 bricks, 2 2x1 bricks, 2 3x1 bricks, and 3 4x1 bricks, we would need 7 4x1 rows as shown on the right.

Because they have a lot of bricks, the kids want “daddy’s students” to help them by writing a program that will compute the minimum number of rows needed to arrange their Nx1 bricks in 4x1 rows.

Input

Each line of input will consist of four numbers corresponding to the number of 1x1, 2x1, 3x1, and 4x1 bricks.

You should read and process each line of input until the end of the file.

Example Input

3 2 2 3

Output

For each collection of bricks, you should output the minimum number of 4x1 rows required to hold all the bricks as described above.

Example Output

7

Programming Challenges

This is based on the 311 – Packets problem on the UVa Online Judge.

Submission

To submit your work, follow the same procedure you used for Reading 00:

$ cd path/to/cse-30872-fa18-assignments     # Go to assignments repository
$ git checkout master                       # Make sure we are on master
$ git pull --rebase                         # Pull any changes from GitLab

$ git checkout -b challenge09               # Create and checkout challenge09 branch

$ $EDITOR challenge09/program.cpp           # Edit your code

$ git add challenge09/program.cpp           # Stage your changes
$ git commit -m "challenge09: done"         # Commit your changes

$ git push -u origin challenge09            # Send changes to GitLab

To check your code, you can use the .scripts/submit.py script or curl:

$ .scripts/submit.py
Submitting challenge09 assignment ...
Submitting challenge09 code ...
  Result Success
   Score 6.00
    Time 0.02

$ curl -F source=@challenge09/program.cpp  https://dredd.h4x0r.space/code/cse-30872-fa18/challenge09
{"score": 6, "result": "Success"}

Once you have commited your work and pushed it to GitLab, member to create a merge request. Refer to the Reading 05 TA List to determine your corresponding TA for the merge request.


  1. You’re welcome.

  2. By they, I really mean my wife.