As before, each command spans exactly one line; commands will be uppercase, and reasonably sloppy syntax is to be supported (spaces and empty lines are allowed). Documentation and conformance to "the rules" is worth 10 points.
As before, creating a cell that exists already is an error. However, because the number of Sametists accessing the database has increased, the likelihood of input errors has increased. So, the input to the skip-list must be checked to make sure that (X , Y) coordinates are not replicated. That is, distinct cell names must imply distinct (X,Y) values, and brute force search across the leaves isn't fast enough.
You should print a list of the cell coordinates examined in attempting to insert a new cell name to demonstrate that you did not use brute force to make this check, as described in section 1.3.2. And, you are welcomed to store the coordinates in a 2- or 3- dimensional k-d tree. I don't care which. We aren't looking for the fastest method, merely NOT brute force.
Please note that there are several distinct Hanan-o-bot types: Alpha, Gamma, and Sigma The type of Hanan-o-bot will be encoded in the first letter of the cell name. Type Alpha Hanan-o-bots begin with the letters A-F inclusive; Type Gamma Hanan-o-bots begin with the letters G-J inclusive; Type Sigma cells begin with the letter S-V Other cell-types might make use of the remaining letters; so, please don't assume that no letter higher than N in strcmp will be used. That is, we can use any first letter we want for a cell name; so, you are not required to examine the first letter of the cell name when creating the entry in the data dictionary.
The cell to be inserted should have been created earlier using CREATE_CELL command. If the cell is not present in the data dictionary, output an error message. Print confirmation message if the command is processed successfully. If the cell exists in the point-region quadtree already, output an error message.
Please note that the coordinate system in use for the project has [0,0] at the lower left corner and (1024,1024) at the upper right corner. Order of the subtrees should be: 1 (NE) ,2 (NW), 3 (SW), 4 (SE). Traversals of the PR tree should list the path through the PRtree by number.
That is, the quadtree nodes containing the vertices of each segment of the path should include information that permits the presence of an edge intersecting that partition to be recognized quickly, as well as allowing several edges emanating from the same vertex to be distinguished. The edge cost is given by the Euclidean distance between the vertices.