Statistics

Problem Statement for "grafixGlobs"

Problem Statement

Note: This problem statement includes images that may not appear if you are using a plugin. For best results, use the Arena editor.

In the vector-drawing mode of the grafix software package, the user plots geometric objects of three kinds: arcs, circles, and polygons. These objects are grouped into collections known as globs. A newly made object automatically belongs to a glob of which it is the sole member. The user can later choose to merge two globs into one, or to split one glob so that each of its objects is delegated to a glob on its own. Each glob bears a unique identification number or ID, which is crucial to updating the document. Your job is to take a sequence of drawing instructions expressed in the grafix internal language, and execute them according to the rules laid out below.

An instruction is a string that takes one the following forms.

  make OBJ
  delete ID
  merge ID ID
  split ID

In these forms, "OBJ" is a placeholder for one of the following values.

  arc
  circle
  polygon

Furthermore, "ID" is a placeholder for the string representation of an existing glob ID, which must be a non-negative integer. The string representation will not be padded with zeros, and no instruction will be padded with extraneous spaces on either side or between its tokens.

Before you execute the first instruction, the document is empty, so no glob IDs are in use. When a "make" instruction is executed, you must form a new glob whose ID is the lowest non-negative integer that isn't currently in use as a glob ID. The sole member of the new glob will be an object of the type named by the "make" instruction.

To execute a "delete" instruction, you take the glob whose ID is specified by the instruction, discard all the objects it contains, and liberate its ID for future use.

The "merge" instruction specifies two different IDs. The first one identifies the target glob, to which you must add the members of the second glob, called the source glob. Immediately thereafter, the source glob is to be destroyed and its ID liberated. Note that globs do not contain other globs, but only objects. Thus, the consequence of a merge operation is that the target glob contains more objects than before, namely its prior contents as well as the objects drawn from the source glob.

The "split" instruction liberates the ID of the specified glob and then reassigns each of its member objects to an individual glob bearing the lowest available ID, in the following order. First the arcs are reassigned, then the circles, and finally the polygons. The specified glob is finally discarded. Its ID, if it was not reused by one of its member objects, remains available.

You are given a sequence of drawing instructions in the String[] commands. After executing all instructions in order, you are to determine the contents of the glob whose ID is specified by the int sel. If there is no such glob, return an empty int[]. Otherwise, return an int[] with three values declaring, in order, the number of arcs, circles, and polygons in that glob.

Definition

Class:
grafixGlobs
Method:
execute
Parameters:
String[], int
Returns:
int[]
Method signature:
int[] execute(String[] commands, int sel)
(be sure your method is public)

Constraints

  • commands contains between 1 and 50 elements, inclusive
  • each element of commands adheres to the format described above
  • commands is a feasible sequence, so each ID refers to an existing glob when it is used
  • sel is between 0 and 999, inclusive

Examples

  1. {"make arc", "make arc", "make circle", "merge 1 0", "merge 2 1", "split 2"}

    0

    Returns: { 1, 0, 0 }

  2. {"make arc", "make arc", "make circle", "merge 1 0", "merge 2 1", "split 2"}

    1

    Returns: { 1, 0, 0 }

  3. {"make arc", "make arc", "make circle", "merge 1 0", "merge 2 1", "split 2"}

    2

    Returns: { 0, 1, 0 }

  4. {"make arc", "make arc", "make circle", "merge 1 0", "merge 2 1", "split 2"}

    4

    Returns: { }

  5. {"make polygon", "make polygon", "make arc", "make circle", "make circle", "delete 3", "make polygon", "make arc", "make arc", "merge 1 3", "merge 1 4", "merge 2 1", "make arc", "make arc", "make circle", "make circle", "merge 6 5", "split 6", "merge 2 1"}

    2

    Returns: { 2, 1, 2 }

  6. {"make arc", "delete 0", "make polygon", "make polygon", "merge 0 1", "make arc", "make circle", "make arc", "merge 2 1", "make polygon", "merge 1 3", "make polygon", "make polygon", "make circle", "merge 4 5", "make circle", "make arc", "make circle", "merge 6 7", "make circle", "make circle", "make polygon", "merge 3 9", "merge 8 7", "make polygon", "make arc", "merge 9 5", "make circle", "make circle", "split 7", "merge 7 10", "make circle", "merge 5 10", "make polygon", "make polygon", "merge 10 11", "make circle", "make circle", "make arc", "make polygon", "merge 11 13", "make polygon", "make polygon", "make circle", "make arc", "make polygon", "make arc", "make polygon", "merge 18 16", "make circle"}

    19

    Returns: { 1, 0, 0 }

  7. {"make circle", "make polygon", "delete 1", "make polygon", "make polygon", "split 1", "make polygon", "make circle", "merge 0 3", "make circle", "split 2", "merge 3 2", "make polygon", "merge 2 1", "make arc", "make polygon", "merge 1 5", "make circle", "merge 5 4", "make arc", "make arc", "merge 6 4", "make arc", "make polygon", "merge 7 4", "make arc", "make arc", "merge 8 4", "make arc", "make polygon", "merge 9 4", "make circle", "make arc", "make polygon", "merge 4 10", "make polygon", "make polygon", "merge 11 10", "make arc", "merge 10 12", "make polygon", "make polygon", "make circle", "make arc", "delete 15", "make polygon", "delete 12", "merge 13 14", "make circle", "merge 12 15"}

    102

    Returns: { }

  8. {"make arc", "make polygon", "merge 0 1", "make polygon", "make polygon", "make arc", "make polygon", "make polygon", "merge 4 5", "make polygon", "merge 3 2", "merge 1 5", "make polygon", "make circle", "merge 2 5", "make circle", "make circle", "make polygon", "merge 7 6", "split 5", "make circle", "merge 5 6", "make polygon", "make arc", "merge 6 8", "make circle", "make arc", "merge 8 9", "make circle", "make arc", "merge 9 10", "make arc", "make circle", "delete 11", "delete 10", "make polygon", "make arc", "merge 11 10", "make circle", "make circle", "make arc", "merge 10 13", "make polygon", "merge 13 12", "make circle", "make circle", "make circle", "delete 14", "make arc", "make arc"}

    15

    Returns: { 0, 1, 0 }

  9. {"make arc", "make polygon", "make arc", "make polygon", "merge 2 0", "make arc", "merge 3 1", "make arc", "merge 0 1", "make arc", "make arc", "merge 4 1", "make polygon", "make arc", "make polygon", "make circle", "make polygon", "merge 6 8", "merge 1 7", "make arc", "make arc", "make polygon", "make circle", "merge 9 5", "make circle", "merge 5 10", "make arc", "merge 7 8", "make circle", "split 10", "split 10", "merge 8 10", "make arc", "make polygon", "merge 10 11", "make circle", "make circle", "merge 12 11", "make circle", "make polygon", "make polygon", "merge 13 11", "make circle", "make arc", "make polygon", "make polygon", "merge 11 15", "make circle", "make circle", "make arc"}

    17

    Returns: { 0, 0, 1 }

  10. {"make arc", "make polygon", "make circle", "merge 0 1", "make polygon", "make circle", "merge 2 3", "make arc", "make circle", "merge 3 1", "make circle", "merge 1 4", "make polygon", "make circle", "merge 4 5", "make circle", "make circle", "make arc", "merge 6 5", "make polygon", "merge 7 5", "make arc", "make polygon", "split 8", "merge 8 5", "make polygon", "make arc", "make arc", "merge 9 5", "make polygon", "make circle", "make circle", "merge 11 12", "make circle", "make arc", "make arc", "merge 5 14", "merge 13 12", "make arc", "delete 10", "make arc", "make arc", "make circle", "make arc", "merge 14 12", "merge 10 16", "make polygon", "make polygon", "make arc", "merge 16 15"}

    12

    Returns: { 0, 0, 1 }

  11. {"make circle", "make arc", "make arc", "merge 2 1", "make arc", "merge 1 0", "make polygon", "make arc", "merge 3 0", "make polygon", "make arc", "make circle", "merge 5 4", "make arc", "merge 4 0", "make circle", "make arc", "merge 6 0", "make polygon", "make polygon", "merge 0 7", "make arc", "make circle", "delete 8", "make arc", "merge 8 7", "make circle", "make arc", "merge 7 9", "make arc", "make polygon", "merge 10 9", "make polygon", "make circle", "make arc", "make polygon", "make circle", "make circle", "make circle", "delete 9", "merge 13 11", "merge 15 16", "make arc", "merge 12 9", "make circle", "merge 14 9", "make polygon", "make circle", "merge 11 9", "make polygon"}

    9

    Returns: { 0, 0, 1 }

  12. {"make circle", "make polygon", "merge 0 1", "make arc", "make circle", "split 2", "make arc", "merge 3 1", "make arc", "make arc", "make circle", "make arc", "make circle", "merge 5 1", "delete 2", "merge 7 4", "delete 6", "make polygon", "make circle", "make circle", "make circle", "merge 1 2", "split 4", "merge 2 6", "make circle", "make circle", "make polygon", "make polygon", "merge 4 9", "merge 6 8", "make polygon", "split 8", "make arc", "merge 9 8", "make polygon", "make arc", "make arc", "merge 11 10", "make circle", "make arc", "make circle", "make arc", "split 13", "merge 14 12", "make arc", "make arc", "make circle", "make circle", "make circle", "merge 13 18"}

    12

    Returns: { 1, 0, 0 }

  13. {"make polygon", "make polygon", "make circle", "merge 1 0", "make circle", "merge 0 2", "make polygon", "make arc", "make arc", "make circle", "make polygon", "make polygon", "merge 2 4", "make circle", "merge 6 5", "make circle", "merge 7 4", "make arc", "make polygon", "make arc", "make arc", "merge 5 10", "make circle", "merge 9 10", "merge 4 8", "make polygon", "merge 3 8", "make arc", "make arc", "merge 8 10", "make circle", "make arc", "make polygon", "make arc", "make polygon", "merge 11 12", "make circle", "merge 12 13", "merge 10 14", "make polygon", "make circle", "make circle", "make circle", "split 15", "merge 13 14", "make polygon", "merge 14 15", "make circle", "merge 16 15", "make circle"}

    15

    Returns: { 0, 1, 0 }

  14. {"make polygon", "make circle", "make circle", "make circle", "merge 0 2", "make arc", "merge 3 2", "make polygon", "make circle", "make arc", "merge 5 2", "merge 4 1", "make polygon", "make polygon", "make circle", "merge 1 2", "make circle", "merge 6 2", "make polygon", "make circle", "delete 2", "make arc", "make circle", "merge 2 8", "make polygon", "merge 8 7", "make arc", "make polygon", "merge 7 9", "make polygon", "make arc", "make arc", "merge 11 10", "make polygon", "make circle", "merge 10 12", "make polygon", "make arc", "merge 13 12", "make polygon", "merge 12 9", "make arc", "make polygon", "make circle", "merge 14 9", "make arc", "merge 9 15", "make arc", "make circle", "merge 16 15"}

    162

    Returns: { }

  15. {"make circle", "make circle", "merge 0 1", "make circle", "make arc", "merge 2 1", "make polygon", "make circle", "merge 3 1", "make arc", "make polygon", "merge 1 4", "make polygon", "delete 4", "make polygon", "make circle", "delete 5", "make circle", "make arc", "merge 6 4", "delete 5", "make arc", "make arc", "make arc", "make arc", "make arc", "make circle", "split 7", "merge 7 5", "make circle", "merge 4 5", "make circle", "make arc", "merge 10 9", "merge 5 8", "make arc", "make circle", "merge 8 11", "make polygon", "make arc", "merge 9 12", "make polygon", "make arc", "make polygon", "merge 12 11", "make circle", "make polygon", "merge 13 14", "merge 15 11", "make circle"}

    11

    Returns: { 0, 1, 0 }

  16. {"make polygon", "make circle", "make circle", "make arc", "split 0", "make polygon", "merge 2 3", "merge 4 1", "make polygon", "make polygon", "make polygon", "make arc", "merge 1 6", "merge 5 3", "make circle", "merge 3 0", "make arc", "make circle", "make arc", "merge 6 7", "make circle", "make circle", "make polygon", "merge 8 7", "merge 0 9", "make circle", "make polygon", "make arc", "merge 9 10", "make arc", "merge 10 7", "make arc", "make circle", "make arc", "make arc", "make polygon", "merge 12 14", "merge 11 13", "make arc", "split 7", "merge 7 13", "make circle", "make arc", "split 14", "make circle", "merge 14 15", "make arc", "merge 15 13", "make circle", "make arc"}

    16

    Returns: { 1, 0, 0 }

  17. {"make arc", "make circle", "split 0", "make circle", "merge 1 2", "make arc", "make polygon", "make circle", "merge 0 4", "merge 3 2", "make polygon", "make arc", "make arc", "make polygon", "make polygon", "merge 7 6", "merge 4 2", "make polygon", "merge 2 5", "make polygon", "make arc", "merge 6 5", "make arc", "make circle", "make polygon", "merge 5 9", "make arc", "merge 8 9", "make arc", "make arc", "make polygon", "merge 10 9", "make circle", "merge 11 9", "make arc", "make arc", "make circle", "make polygon", "merge 13 14", "merge 12 9", "make arc", "make arc", "merge 9 14", "make polygon", "make circle", "make polygon", "make circle", "make arc", "delete 17", "make circle"}

    17

    Returns: { 0, 1, 0 }

  18. {"make arc", "make polygon", "make polygon", "make arc", "merge 3 0", "merge 1 2", "make polygon", "make polygon", "make circle", "delete 0", "merge 4 2", "make arc", "make arc", "make arc", "merge 2 0", "make circle", "merge 0 5", "make polygon", "make arc", "make polygon", "merge 6 7", "make circle", "merge 7 5", "make arc", "make arc", "make polygon", "merge 8 9", "make arc", "make arc", "delete 9", "make circle", "merge 10 9", "make circle", "merge 9 5", "make polygon", "make polygon", "merge 11 5", "make polygon", "delete 5", "make polygon", "make circle", "merge 5 12", "make circle", "make circle", "merge 12 13", "make polygon", "make arc", "merge 13 14", "make circle", "make polygon"}

    15

    Returns: { 0, 0, 1 }

  19. {"make arc", "make circle", "merge 0 1", "make circle", "make arc", "merge 2 1", "make polygon", "make arc", "make circle", "make arc", "merge 3 5", "make circle", "delete 5", "merge 1 4", "make circle", "make circle", "merge 5 4", "make polygon", "split 4", "make circle", "merge 4 6", "make circle", "make circle", "make polygon", "make arc", "merge 7 9", "merge 6 8", "make polygon", "make polygon", "merge 9 8", "make circle", "make polygon", "make arc", "make polygon", "merge 8 12", "merge 11 10", "make polygon", "make circle", "merge 10 12", "make polygon", "make polygon", "make circle", "make circle", "merge 13 14", "merge 15 12", "make polygon", "make circle", "merge 14 12", "make polygon", "make polygon"}

    12

    Returns: { 0, 0, 1 }

  20. {"make polygon", "make polygon", "make polygon", "merge 0 2", "make circle", "merge 2 1", "make arc", "make arc", "merge 3 1", "make polygon", "make polygon", "make circle", "merge 4 1", "make circle", "make arc", "split 6", "make circle", "merge 5 6", "make arc", "merge 1 6", "make polygon", "merge 7 6", "make circle", "make polygon", "delete 6", "make arc", "split 6", "merge 8 6", "make polygon", "make circle", "merge 6 9", "make circle", "make arc", "merge 9 10", "make polygon", "make arc", "merge 11 10", "make arc", "make circle", "make circle", "merge 12 10", "make arc", "make circle", "merge 13 14", "delete 10", "make circle", "make arc", "make polygon", "make polygon", "make circle"}

    15

    Returns: { 0, 0, 1 }

  21. {"make circle", "make polygon", "make circle", "merge 1 2", "make arc", "make polygon", "make polygon", "merge 2 3", "merge 0 4", "make circle", "make circle", "make circle", "make arc", "merge 6 3", "merge 5 4", "make polygon", "make polygon", "make circle", "merge 7 3", "make polygon", "merge 4 3", "make circle", "make arc", "merge 3 8", "make arc", "make arc", "merge 8 9", "make polygon", "make circle", "merge 9 10", "make arc", "make polygon", "merge 11 10", "make polygon", "make polygon", "merge 10 12", "make polygon", "make polygon", "merge 12 13", "make polygon", "make circle", "make circle", "merge 14 13", "make polygon", "make polygon", "merge 16 13", "make polygon", "split 15", "merge 15 13", "make polygon"}

    13

    Returns: { 0, 0, 1 }

  22. {"make arc", "make polygon", "make circle", "merge 0 2", "make circle", "merge 2 1", "make polygon", "make polygon", "merge 3 1", "make circle", "make polygon", "merge 4 1", "make arc", "make polygon", "make circle", "split 6", "make polygon", "make polygon", "make polygon", "merge 6 8", "merge 7 5", "make circle", "merge 1 5", "make polygon", "merge 9 5", "make polygon", "make polygon", "make circle", "merge 8 5", "make circle", "merge 10 5", "make arc", "make arc", "make circle", "merge 11 12", "make polygon", "merge 12 5", "make circle", "make polygon", "make circle", "make circle", "merge 13 14", "make polygon", "make polygon", "merge 5 16", "make circle", "merge 15 14", "make arc", "merge 14 16", "make polygon"}

    16

    Returns: { 0, 0, 1 }

  23. {"make polygon", "make polygon", "merge 0 1", "make arc", "make arc", "merge 1 2", "make polygon", "make arc", "make arc", "merge 3 4", "delete 2", "make arc", "make circle", "make arc", "make circle", "split 5", "merge 2 6", "make circle", "merge 4 5", "make arc", "make polygon", "make arc", "make polygon", "make circle", "merge 9 8", "merge 6 7", "make circle", "merge 10 7", "make circle", "merge 7 5", "make polygon", "make polygon", "make circle", "merge 8 11", "make polygon", "make polygon", "make arc", "make polygon", "make arc", "make polygon", "merge 13 15", "make polygon", "split 5", "make circle", "make polygon", "merge 5 16", "merge 15 14", "make polygon", "merge 17 11", "make polygon"}

    18

    Returns: { 0, 0, 1 }

  24. {"make polygon", "make polygon", "make circle", "delete 2", "merge 0 1", "make polygon", "make circle", "split 2", "merge 1 2", "make circle", "make polygon", "make circle", "merge 4 3", "make circle", "merge 3 2", "make arc", "make circle", "merge 2 5", "make polygon", "make polygon", "merge 6 5", "make circle", "make polygon", "merge 5 7", "make circle", "make polygon", "merge 7 8", "make polygon", "make circle", "merge 9 8", "make arc", "make polygon", "merge 8 10", "make polygon", "make arc", "merge 10 11", "make polygon", "make arc", "make polygon", "delete 12", "make circle", "merge 11 12", "make arc", "split 13", "delete 13", "make circle", "merge 13 12", "make polygon", "make polygon", "merge 12 14"}

    116

    Returns: { }

  25. {"make circle", "make circle", "merge 1 0", "make circle", "make circle", "merge 0 2", "make circle", "make circle", "merge 3 2", "make arc", "make arc", "merge 4 2", "make circle", "split 2", "make circle", "merge 2 5", "make circle", "make polygon", "merge 5 6", "make arc", "make polygon", "merge 7 6", "make circle", "make polygon", "merge 8 6", "make polygon", "make polygon", "merge 9 6", "make polygon", "make arc", "make arc", "merge 11 6", "make polygon", "merge 10 6", "make arc", "make polygon", "make circle", "make polygon", "make circle", "make arc", "merge 6 15", "delete 13", "make polygon", "merge 16 14", "split 12", "make circle", "make polygon", "merge 13 15", "make circle", "make arc"}

    15

    Returns: { 0, 1, 0 }

  26. {"make arc", "make polygon", "merge 0 1", "make arc", "make arc", "merge 1 2", "make polygon", "make polygon", "merge 2 3", "make circle", "make circle", "make circle", "merge 3 4", "make arc", "merge 5 4", "make polygon", "make circle", "merge 4 6", "make polygon", "make circle", "merge 6 7", "make arc", "make polygon", "delete 8", "make circle", "merge 7 8", "make circle", "make arc", "merge 9 8", "make arc", "make arc", "make arc", "merge 10 8", "make circle", "make polygon", "merge 12 11", "make arc", "merge 11 8", "make polygon", "make arc", "make arc", "merge 13 8", "delete 14", "make arc", "make polygon", "merge 14 8", "make polygon", "make polygon", "make arc", "merge 8 15"}

    16

    Returns: { 1, 0, 0 }

  27. {"make arc", "make polygon", "merge 0 1", "make polygon", "make polygon", "make arc", "merge 1 3", "make arc", "merge 3 2", "make polygon", "make arc", "merge 4 2", "make arc", "split 2", "make polygon", "make polygon", "make polygon", "merge 5 7", "merge 6 2", "make circle", "make polygon", "make arc", "merge 8 2", "make circle", "make circle", "make arc", "merge 2 9", "make circle", "make arc", "merge 7 9", "make circle", "make arc", "make polygon", "merge 13 9", "split 12", "make circle", "delete 10", "merge 12 9", "split 11", "delete 9", "make circle", "make arc", "merge 10 9", "make circle", "make circle", "merge 9 11", "make arc", "make arc", "merge 14 11", "make polygon"}

    11

    Returns: { 0, 0, 1 }

  28. {"make circle", "make arc", "merge 0 1", "make polygon", "make circle", "merge 2 1", "make circle", "split 1", "make polygon", "merge 1 3", "make circle", "make polygon", "merge 4 3", "make circle", "make polygon", "make circle", "merge 5 6", "make polygon", "merge 3 6", "make circle", "make circle", "make arc", "make polygon", "make circle", "split 7", "merge 7 6", "make polygon", "merge 8 9", "merge 10 6", "make arc", "make polygon", "delete 9", "make circle", "merge 6 9", "make polygon", "split 9", "make circle", "merge 11 9", "make polygon", "make circle", "make polygon", "make polygon", "merge 13 14", "split 9", "make arc", "make circle", "make polygon", "merge 15 12", "make arc", "merge 9 14"}

    12

    Returns: { 1, 0, 0 }

  29. {"make circle", "make polygon", "merge 0 1", "make polygon", "make arc", "make arc", "make arc", "merge 2 1", "merge 3 4", "make circle", "make arc", "make polygon", "make polygon", "merge 6 4", "merge 1 5", "make circle", "make circle", "make circle", "merge 7 5", "make circle", "merge 5 4", "make circle", "make arc", "make arc", "make arc", "merge 10 9", "merge 4 8", "make polygon", "make polygon", "delete 9", "make circle", "make circle", "make polygon", "merge 9 8", "make arc", "make polygon", "make circle", "make arc", "make circle", "delete 14", "merge 13 8", "merge 15 16", "merge 11 12", "make circle", "make circle", "merge 12 8", "make arc", "make circle", "merge 14 8", "make polygon"}

    8

    Returns: { 0, 0, 1 }

  30. {"make circle", "make arc", "make circle", "merge 0 2", "make circle", "make arc", "merge 1 3", "make arc", "merge 2 3", "make circle", "make circle", "split 4", "merge 3 4", "make arc", "make polygon", "delete 4", "delete 5", "make polygon", "make circle", "delete 5", "make circle", "merge 4 5", "make arc", "make circle", "merge 5 6", "make arc", "make polygon", "make circle", "make arc", "merge 6 7", "delete 9", "make circle", "make circle", "merge 9 8", "make polygon", "make circle", "make circle", "make polygon", "merge 7 11", "merge 10 12", "make arc", "merge 11 8", "make polygon", "make circle", "make arc", "merge 8 13", "make polygon", "make circle", "merge 13 14", "make polygon"}

    12

    Returns: { 0, 1, 0 }

  31. {"make circle", "make polygon", "merge 1 0", "make arc", "make polygon", "make polygon", "merge 0 2", "make polygon", "make circle", "make arc", "delete 5", "merge 4 2", "make polygon", "make polygon", "split 2", "make circle", "make polygon", "merge 3 6", "merge 2 5", "make circle", "merge 7 5", "make polygon", "make arc", "merge 5 6", "make circle", "make polygon", "split 8", "make circle", "make polygon", "merge 9 6", "make arc", "make circle", "merge 10 8", "make polygon", "make arc", "make circle", "merge 8 13", "make arc", "merge 12 11", "merge 13 6", "make arc", "make circle", "make arc", "merge 14 6", "split 11", "make polygon", "make polygon", "merge 11 15", "make polygon", "make circle"}

    16

    Returns: { 0, 1, 0 }

  32. {"make polygon", "make circle", "make arc", "make arc", "merge 3 2", "make arc", "make polygon", "make polygon", "merge 0 5", "merge 2 1", "make polygon", "merge 1 4", "make polygon", "make circle", "delete 4", "make polygon", "make circle", "split 4", "merge 5 6", "make arc", "make polygon", "merge 6 4", "make polygon", "make polygon", "merge 8 7", "make arc", "make polygon", "delete 4", "merge 7 9", "make arc", "make polygon", "merge 9 4", "make polygon", "make arc", "merge 10 4", "make circle", "make polygon", "merge 11 4", "make polygon", "make circle", "make arc", "make polygon", "make arc", "merge 4 13", "delete 15", "make arc", "split 14", "merge 13 14", "make arc", "make arc"}

    14

    Returns: { 1, 0, 0 }

  33. {"make arc", "make arc", "make arc", "merge 0 1", "make polygon", "make arc", "delete 3", "delete 1", "delete 2", "make arc", "delete 1", "make circle", "make arc", "merge 2 1", "make polygon", "make arc", "make polygon", "merge 1 3", "make polygon", "merge 4 3", "make circle", "make polygon", "split 3", "make circle", "make polygon", "merge 6 3", "make circle", "merge 3 7", "delete 5", "make circle", "make polygon", "split 5", "split 5", "delete 7", "make polygon", "merge 5 7", "make circle", "make polygon", "split 7", "make arc", "make arc", "merge 9 7", "make polygon", "make arc", "merge 11 7", "make polygon", "merge 7 8", "make polygon", "make circle", "merge 10 12"}

    8

    Returns: { 0, 0, 1 }

  34. {"make circle", "make circle", "merge 1 0", "make circle", "make polygon", "merge 2 0", "make circle", "make arc", "make arc", "merge 4 3", "delete 0", "make circle", "make polygon", "make circle", "delete 0", "make polygon", "make circle", "make polygon", "merge 5 7", "merge 0 3", "make arc", "merge 6 3", "make arc", "make arc", "make polygon", "split 8", "delete 7", "merge 3 8", "make arc", "make polygon", "merge 8 7", "make polygon", "make polygon", "merge 9 7", "make arc", "make circle", "merge 10 7", "make arc", "make circle", "merge 7 11", "make arc", "make arc", "merge 12 11", "make arc", "make arc", "merge 11 13", "make arc", "make polygon", "delete 13", "make circle"}

    13

    Returns: { 0, 1, 0 }

  35. {"make arc", "make circle", "make polygon", "merge 2 0", "make polygon", "merge 1 0", "make polygon", "make polygon", "merge 3 0", "make polygon", "make circle", "merge 4 0", "make arc", "make polygon", "merge 0 5", "make polygon", "make polygon", "merge 5 6", "make arc", "make circle", "make circle", "merge 7 6", "make circle", "merge 8 6", "make circle", "make polygon", "merge 9 6", "make polygon", "make circle", "make circle", "make circle", "merge 12 10", "merge 11 6", "make polygon", "make polygon", "make arc", "merge 10 6", "make arc", "merge 13 6", "make circle", "make arc", "make polygon", "make circle", "merge 14 6", "make circle", "merge 6 16", "make polygon", "make arc", "delete 16", "merge 15 17"}

    43

    Returns: { }

  36. {"make circle", "make polygon", "merge 0 1", "make arc", "make circle", "merge 2 1", "make polygon", "make circle", "make arc", "merge 3 4", "make polygon", "merge 1 4", "make polygon", "split 4", "make circle", "merge 5 4", "make circle", "delete 4", "make polygon", "delete 4", "make circle", "make circle", "merge 6 4", "make arc", "make polygon", "merge 4 7", "make arc", "make circle", "merge 8 7", "make circle", "make polygon", "merge 9 7", "make circle", "make circle", "split 10", "merge 7 10", "make arc", "make polygon", "merge 10 11", "make polygon", "make polygon", "make arc", "make circle", "merge 11 12", "merge 13 14", "make arc", "make polygon", "make arc", "merge 12 15", "make polygon"}

    15

    Returns: { 0, 0, 1 }

  37. {"make arc", "make circle", "make polygon", "make arc", "make polygon", "merge 0 2", "delete 4", "merge 1 3", "make polygon", "make circle", "merge 2 3", "make circle", "make polygon", "make arc", "delete 3", "merge 4 5", "make arc", "split 3", "make arc", "merge 3 5", "make arc", "make polygon", "merge 6 5", "make polygon", "make arc", "merge 7 5", "make arc", "make circle", "merge 8 5", "make arc", "make circle", "merge 5 9", "make arc", "make circle", "make circle", "make polygon", "merge 11 9", "merge 10 12", "make arc", "make arc", "merge 12 9", "make polygon", "make arc", "merge 9 13", "make circle", "make polygon", "merge 14 13", "make circle", "make circle", "merge 15 13"}

    19

    Returns: { }

  38. {"make circle", "make arc", "split 1", "make polygon", "merge 0 2", "make circle", "make circle", "make circle", "make circle", "merge 3 5", "make circle", "delete 2", "merge 4 1", "make circle", "delete 5", "make arc", "make circle", "merge 2 1", "make circle", "make arc", "make circle", "make circle", "merge 7 6", "merge 8 1", "make arc", "delete 5", "make polygon", "split 5", "merge 1 5", "make arc", "make arc", "merge 5 6", "make arc", "make circle", "make arc", "split 6", "make circle", "make polygon", "merge 11 9", "merge 10 12", "make circle", "delete 9", "make polygon", "merge 9 6", "make arc", "make polygon", "merge 6 12", "make circle", "make polygon", "merge 12 13"}

    123

    Returns: { }

  39. {"make polygon", "make circle", "make polygon", "merge 2 0", "make arc", "make circle", "merge 0 3", "make polygon", "make arc", "merge 3 1", "make arc", "make arc", "split 1", "merge 5 4", "make circle", "merge 1 4", "make polygon", "make circle", "merge 6 4", "make circle", "make polygon", "merge 4 7", "make circle", "make polygon", "merge 7 8", "make circle", "make polygon", "make polygon", "make arc", "merge 8 9", "merge 10 11", "make arc", "make circle", "merge 9 11", "make circle", "make circle", "make arc", "merge 13 12", "make circle", "merge 12 11", "make circle", "make polygon", "make circle", "merge 11 14", "make circle", "merge 14 15", "make arc", "make arc", "make polygon", "make arc"}

    17

    Returns: { 0, 0, 1 }

  40. {"make circle", "make circle", "make circle", "make polygon", "merge 3 1", "make circle", "merge 2 0", "make polygon", "make circle", "make circle", "make arc", "split 1", "merge 6 5", "merge 4 1", "make arc", "make arc", "merge 1 5", "make polygon", "make circle", "merge 5 0", "make circle", "merge 0 7", "make arc", "make arc", "merge 8 7", "make arc", "make polygon", "merge 9 7", "make arc", "make polygon", "make circle", "make polygon", "make polygon", "merge 13 11", "merge 7 12", "make polygon", "make circle", "merge 11 10", "make polygon", "split 12", "merge 12 10", "make arc", "make arc", "make arc", "merge 15 10", "make polygon", "merge 10 14", "make arc", "make polygon", "split 16"}

    16

    Returns: { 0, 0, 1 }

  41. {"make arc", "make arc", "merge 1 0", "make polygon", "make arc", "make polygon", "make circle", "merge 4 0", "merge 2 3", "make polygon", "make circle", "make arc", "make arc", "merge 6 3", "merge 5 0", "make arc", "make circle", "make arc", "merge 0 7", "make polygon", "merge 7 3", "make polygon", "make polygon", "make circle", "merge 8 3", "make circle", "merge 9 3", "make arc", "make circle", "make circle", "merge 11 3", "delete 10", "make polygon", "make polygon", "merge 3 10", "make polygon", "make arc", "merge 10 12", "make arc", "make arc", "merge 12 13", "make polygon", "make circle", "make polygon", "merge 15 14", "make arc", "merge 13 14", "make arc", "make arc", "merge 16 14"}

    82

    Returns: { }

  42. {"make arc", "make polygon", "merge 0 1", "make circle", "make arc", "merge 2 1", "make arc", "make circle", "merge 3 1", "make circle", "make circle", "merge 4 1", "make circle", "make circle", "make arc", "make polygon", "make circle", "make polygon", "merge 8 5", "split 7", "make polygon", "make arc", "merge 1 10", "make arc", "merge 5 10", "merge 7 6", "make circle", "split 9", "delete 9", "make polygon", "make circle", "merge 6 9", "make polygon", "merge 9 10", "make polygon", "make circle", "merge 11 10", "make arc", "make circle", "merge 10 12", "make arc", "make arc", "make polygon", "make polygon", "merge 13 12", "delete 15", "make circle", "make circle", "merge 12 15", "make arc"}

    15

    Returns: { 1, 0, 0 }

  43. {"make circle", "make polygon", "merge 1 0", "make polygon", "make polygon", "merge 0 2", "make polygon", "make circle", "make polygon", "merge 3 4", "make circle", "merge 2 4", "make polygon", "make arc", "make arc", "make polygon", "merge 7 5", "make arc", "merge 4 5", "make circle", "make polygon", "make circle", "merge 8 6", "make polygon", "merge 6 9", "make polygon", "merge 9 5", "make circle", "delete 5", "make circle", "make polygon", "split 5", "merge 5 10", "make circle", "make circle", "make circle", "merge 12 10", "make circle", "split 10", "merge 11 10", "make polygon", "make polygon", "make circle", "merge 10 13", "make arc", "merge 14 13", "make circle", "make polygon", "merge 15 13", "make arc"}

    13

    Returns: { 1, 0, 0 }

  44. {"make arc", "delete 0", "make polygon", "make circle", "make polygon", "make arc", "make circle", "make polygon", "make polygon", "merge 2 1", "merge 5 4", "merge 3 6", "make polygon", "merge 1 0", "make circle", "make arc", "merge 0 4", "make polygon", "make circle", "merge 6 4", "make arc", "make circle", "merge 4 7", "make circle", "make circle", "make polygon", "make circle", "make arc", "make polygon", "merge 11 7", "make polygon", "merge 10 8", "make polygon", "merge 7 12", "make circle", "merge 9 12", "make circle", "merge 8 12", "make circle", "make circle", "make circle", "merge 13 14", "make polygon", "merge 14 12", "make arc", "make polygon", "make polygon", "make arc", "make circle", "merge 17 18"}

    12

    Returns: { 1, 0, 0 }

  45. {"make circle", "make arc", "make polygon", "make arc", "make polygon", "merge 3 2", "make polygon", "merge 0 1", "merge 4 2", "make circle", "make arc", "make polygon", "make arc", "merge 1 2", "merge 6 5", "make arc", "make arc", "merge 5 2", "make arc", "make polygon", "merge 7 2", "make polygon", "make arc", "make polygon", "merge 8 2", "make polygon", "merge 9 2", "make circle", "make arc", "merge 2 10", "make arc", "make arc", "make polygon", "make polygon", "merge 13 11", "make circle", "make polygon", "make polygon", "make arc", "make circle", "make polygon", "make circle", "make circle", "merge 19 16", "merge 15 14", "split 18", "merge 11 10", "make polygon", "merge 10 20", "make arc"}

    14

    Returns: { 0, 0, 1 }

  46. {"make polygon", "make polygon", "merge 0 1", "make circle", "make circle", "split 1", "make circle", "make circle", "merge 2 4", "merge 1 3", "make arc", "make polygon", "merge 3 4", "make polygon", "make arc", "split 4", "merge 5 4", "make polygon", "make polygon", "make circle", "merge 6 7", "make polygon", "make arc", "merge 8 4", "make circle", "make polygon", "merge 9 7", "make circle", "merge 4 7", "make arc", "make circle", "make polygon", "merge 11 10", "make circle", "merge 10 7", "make arc", "make arc", "merge 12 7", "make circle", "make circle", "merge 7 13", "make arc", "make circle", "make circle", "make polygon", "merge 14 13", "make arc", "merge 13 15", "make polygon", "merge 15 16"}

    15

    Returns: { 0, 0, 2 }

  47. {"make circle", "split 0", "make arc", "merge 0 1", "make polygon", "split 1", "make circle", "merge 1 2", "make polygon", "make polygon", "delete 3", "make polygon", "merge 3 2", "make circle", "make arc", "merge 4 2", "make circle", "make circle", "make polygon", "merge 2 5", "make arc", "merge 6 5", "make arc", "make circle", "merge 5 7", "make circle", "make arc", "merge 7 8", "make arc", "make circle", "make polygon", "merge 8 9", "make polygon", "merge 10 9", "make polygon", "make polygon", "merge 9 11", "make circle", "make circle", "merge 11 12", "make polygon", "make polygon", "make polygon", "merge 14 12", "make arc", "make polygon", "merge 13 12", "make arc", "merge 15 12", "make polygon"}

    12

    Returns: { 0, 0, 1 }

  48. {"make polygon", "make circle", "make circle", "make polygon", "merge 2 1", "make circle", "make circle", "make polygon", "make arc", "make polygon", "merge 7 5", "make arc", "merge 4 6", "merge 5 0", "make polygon", "delete 0", "merge 1 3", "make circle", "make circle", "make circle", "merge 6 0", "make circle", "merge 0 3", "make arc", "make arc", "make arc", "split 3", "merge 3 9", "make polygon", "make circle", "make arc", "make arc", "make polygon", "merge 8 10", "merge 12 9", "split 13", "merge 9 11", "make arc", "make circle", "make circle", "merge 10 13", "make arc", "make circle", "merge 11 13", "split 14", "make circle", "merge 13 14", "make arc", "make circle", "make arc"}

    15

    Returns: { 0, 1, 0 }

  49. {"make circle", "make circle", "make arc", "merge 0 2", "make arc", "merge 1 2", "make polygon", "make polygon", "make arc", "make circle", "make circle", "merge 2 5", "merge 3 6", "make circle", "merge 5 4", "make arc", "make polygon", "merge 4 6", "make polygon", "make circle", "merge 6 7", "make circle", "make circle", "make arc", "make circle", "merge 8 9", "merge 7 10", "make polygon", "make arc", "make arc", "merge 11 9", "make arc", "make circle", "split 9", "merge 12 9", "make arc", "merge 9 10", "make polygon", "make arc", "make circle", "merge 10 14", "make circle", "split 13", "merge 14 13", "make polygon", "make polygon", "merge 15 13", "make polygon", "make circle", "merge 13 16"}

    6

    Returns: { 0, 1, 1 }

  50. {"make polygon", "make circle", "merge 1 0", "make circle", "make circle", "merge 0 2", "make circle", "make polygon", "merge 2 3", "make arc", "make polygon", "split 3", "merge 4 3", "make polygon", "make polygon", "merge 3 5", "make circle", "make circle", "merge 6 5", "make arc", "make arc", "merge 7 5", "make polygon", "make circle", "split 8", "make arc", "split 8", "merge 8 9", "make circle", "make polygon", "merge 10 5", "make arc", "merge 9 5", "make polygon", "make arc", "merge 11 5", "make circle", "make circle", "merge 5 12", "make polygon", "make polygon", "merge 12 13", "make arc", "split 13", "make arc", "make circle", "make circle", "merge 14 13", "make arc", "make circle"}

    16

    Returns: { 0, 1, 0 }

  51. {"make polygon", "make circle", "make polygon", "merge 0 1", "merge 2 0", "split 2"}

    0

    Returns: { 0, 1, 0 }

  52. {"make circle", "make circle", "make arc", "merge 2 1", "delete 0", "split 2", "delete 0", "make polygon"}

    0

    Returns: { 0, 0, 1 }

  53. {"make circle", "make circle", "make arc", "merge 2 1", "delete 0", "split 2", "delete 0", "make polygon"}

    2

    Returns: { }

    There is no glob with ID 2.

  54. {"make arc"}

    999

    Returns: { }

  55. {"make polygon", "make polygon", "make arc", "make circle", "make circle", "delete 3", "make polygon", "make arc", "make arc", "merge 1 3", "merge 1 4", "merge 2 1", "make arc", "make arc", "make circle", "make circle", "merge 6 5", "split 6", "merge 2 1"}

    2

    Returns: { 2, 1, 2 }

  56. { "make polygon", "make polygon", "make arc", "make circle", "make circle", "delete 3", "make polygon", "make arc", "make arc", "merge 1 3", "merge 1 4", "merge 2 1", "make arc", "make arc", "make circle", "make circle", "merge 6 5", "split 6", "merge 2 1" }

    2

    Returns: { 2, 1, 2 }

  57. { "make polygon", "make circle", "make polygon", "merge 0 1", "merge 2 0", "split 2" }

    0

    Returns: { 0, 1, 0 }

  58. { "make circle", "make circle", "make arc", "merge 2 1", "delete 0", "split 2", "delete 0", "make polygon" }

    2

    Returns: { }

  59. { "make polygon", "make circle", "make polygon", "merge 0 1", "merge 2 0", "split 2" }

    2

    Returns: { 0, 0, 1 }

  60. { "make arc", "split 0" }

    0

    Returns: { 1, 0, 0 }

  61. { "make polygon", "make circle", "make polygon", "split 0" }

    3

    Returns: { }

  62. { "make arc", "make arc", "split 0" }

    2

    Returns: { }

  63. { "make arc", "make circle", "make polygon", "merge 0 1", "split 0" }

    0

    Returns: { 1, 0, 0 }

  64. { "make polygon", "make circle", "make arc", "merge 1 2", "split 1" }

    1

    Returns: { 1, 0, 0 }

  65. { "make polygon", "make circle", "make polygon", "make arc", "make arc", "make polygon", "make circle", "merge 2 5", "merge 2 6", "split 2" }

    2

    Returns: { 0, 1, 0 }

  66. { "make circle", "split 0" }

    0

    Returns: { 0, 1, 0 }

  67. { "make arc" }

    999

    Returns: { }

  68. { "make arc", "make polygon", "make circle", "merge 0 2", "split 0" }

    0

    Returns: { 1, 0, 0 }


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: