##### ROUND 7 (21/10) – AND CHAMPION TEAM WAS… #FIND_OUT

The final round of BXCOMP 2015 happened on Wednesday (SET 21TH) and was attended by

fourteen of the twenty teams subscribed, as well as representatives of the companies that culturally supported the championship, Paulo Mirleu of TecSinapse and Marcos Soledade of Quantica, professors of Information Systems – Fabio Nakano, Flávio Coutinho, Luciano Digiampietri and Sarajane Marques Peres (tutor of the PET-SI group) – and EACH’s press. Exceptionally this round, the ranking was simultaneously updated with the submissions of the teams, allowing them to accompany their positions in real time.

At this round, the difficulty level was more focused on mathematical logic. There were four challenges: “Identifying Expressions”, “Termo de Compromisso”, “De Volta para o Passado” and “Dobradura”.

The first challenge, “Identifying Expressions”, proved itself to be the most difficult of the championship and demanded of the competitors understanding the statement at a basic level of English. In this problem, it was necessary to permute the operands of addition, subtraction and multiplication between a set of numbers given as input in order to obtain a valid algebraic expression.

The second challenge, “Termo de Compromisso”, consisted of a string decoding exercise. The steps to perform the string encoding were presented and the team should implement the reverse process in order to decode it..

The third challenge, “De volta para o Passado”, was produced to commemorate the emblematic date of 21 October 2015. The competitors needed to help Martino and Doc Brownie activate a “time machine” by developing a program that satisfy a condition set out in the statement. The main difficulty in this challenge was that some teams used an integer type variable to store the number provided as input, however there were some test cases where the number exceeded the capacity of an integer type variable. The solution to this problem would be to use a long type variable or the BigInteger class.

Finally, the challenge “Dobradura” required for the development of an algorithm that calculates the numbers of paper pieces resulting from cutting a square sheet subjected to a number of “folding operations”.

This time, due to a higher degree of difficulty encountered on the challenges, no team solved all the exercises within the time schedule for the round. However, nine teams managed to solve the challenge “De volta para o Passado”, which was more focused on programming, and only four teams solved the challenges “Termo de Compromisso” and “Dobradura”,which were more focused on mathematical logic. Regarding the challenge “Identifying Expressions”, for being the most difficult challenge of the championship, as previously mentioned, no team managed to solve it.

At the end of the contest, the team “Milionário e José Rick” ” won the championship followed by the teams “Bags without handle” and “Dunder Mifflin”.

During the awards ceremony, Marcos and Paulo briefly discussed about the companies to which they were representing and, along with the teachers, they congratulated the competitors for the commitment and dedication shown throughout the championship. Finally,

former members of PET-SI group who helped with the organization during the championship gave the medals to the three best-placed teams.

So BXCOMP V has come to an end and we thank everyone who participated in another successful championship!

Below are the links to the challenges of the seventh stage, each one accompanied by its possible solution. With them, it is possible to identify your mistakes and prevent them from happening again.

(Click on the name to download)

##### ROUND 6 (14/10) – DOUBLE POINTS, DOUBLE PRESSURE

The sixth round of BXComp, TecSinapse round, happened last Wednesday (October 14th) and was the last but one of the championship. With the championship in its final stretch and the challenges being worth the double, the programming had much more pressure. Fifteen of the twenty registered teams participated in the round and, during the opening, with the presence of the Information Systems course coordinator, Professor Luciano Digiampietri, an introduction was made about the TecSinapse company, its business area and some of its main clients.

Three challenges were proposed in this round, elaborated in partnership with the company TecSinapse, which has supported the championship, and contextualized based on real solutions developed by the company. The first was the challenge “Jolie” in which, from the user’s location and the minimum concept required by them for a beauty salon, as well as the locations and concepts of the beauty salons in the area, the solution should return the salons that met the customer’s criterion of concept sorted by shorter distance.

Due to a misplaced blank space in one of the files used for testing the challenges solutions in the BOCA (the system we use to make judgments), it was necessary to review the submissions manually after the end of the round. This occurred because one of the possible solutions for reading the entry of the challenge would be reading the input lines using the “nextLine()” method of Scanner class, turning them into integers with the method “parseInt()” of “Integer” class. With the blank space, this method generates a runtime exception, what could have caused trouble for some of the teams. After the analysis, the conclusion was that besides the two teams that solved the challenge during the round, another team would have managed to solve it if there were no such error. So three teams solved the challenge “Jolie”.

We note that, despite the use of “nextLine()” being a possible approach, it does require more care with the code, because several details may result in execution errors. Therefore, in cases where the number of integers must be read is known, it is preferable to use the method “nextInt()” of the Scanner class, a specific method for reading integers.

The second challenge, “Entrega Rápida” was the simplest and not coincidentally was the challenge with the highest number of right answers: twelve of the fifteen teams solved the challenge. Its proposal was to find the best period of day to make a delivery, given an origin point and a destination point, represented by alphabet letters, and the time taken to go through the “sections” between this two points in four periods of the day. Each section corresponds to the “spaces” between the letters that alphabetically separate the origin of the destination.

The third challenge, contextualized with the distribution of an automaker’s cars to dealerships, had the task of verifying whether it was possible to meet minimally the requests of the dealerships with the production of the automaker. Minimally meet the requests meant meet at least one of the requests of each dealership. This challenge had nine right answers, and all the teams that solved this challenge, have solved the challenge “Entrega Rápida” as well.

The championship is almost over, but we still have one more round for you to enjoy, have fun and learn. What changes may have occurred in the ranking after another round, with double points? That, you will only know next week since, as defined in the regulation, the ranking of the sixth round will not be disclosed.

We are hoping you will be present next Wednesday (October 21), to honor the closure of our championship, with the delivery of medals to the best-placed teams and a surprise award to the winner team of the championship. Are you looking forward to the grand finale? We are! Be sure to attend.

Below are the links to the challenges of the sixth stage, each one accompanied by its possible solution. With them, it is possible to identify your mistakes and prevent them from happening again.

(Click on the name to download)

##### ROUND 5 (07/10) – Programming level hard

The fifth round of BXComp 2015 took place on Wednesday (October 7th) and was attended by fourteen of the twenty participant teams, as well as the course coordinator, Professor Luciano Digiampietri.

In this round, three challenges were proposed: “Tempo Livre”, “RPG” and “Onda Triangular”. In the first one, besides the number of test cases, an integer indicating the number of activities of a student over a day was given as the input (considering the period from 10 a.m. to 10 p.m.), each activity further specified by the start and end times and also a brief description. The purpose of this challenge was to find, among all given activities, the biggest free time interval. The second challenge was a contextualization of an RPG game, in which each character was described using three attributes – life, power and agility – with possible variations in the values for each. The purpose of this challenge was to test, based on the rules previously defined for the battles, if a hero could destroy all monsters of a simulation with its attributes and, then, save the princess. In the third and final challenge, the input was formed by the number of test cases and two other integer values indicating the frequency and maximum amplitude of a triangular wave, characterized by a linear rise to the crest and subsequent linear descent until the minimum amplitude. The task was to draw a triangular wave with a minimum amplitude of 1, with the frequency and maximum amplitude previously informed, disregarding its troughs.

The most common submission mistakes that occurred in this round were “Runtime Error”, “Compilation Error”, “Presentation Error” and especially “Wrong answer.” In the first challenge, the most common mistake was in the output, with the print of the end time of the free time interval as the start time. In the second one, was to not handle the situation in which the hero and the monster had the same values for agility, but the power of the monster was higher, what, according to the rule, would make the monster strike first. Finally, the most frequent error committed in the third challenge was the erroneous presentation of the wave on the output, without breaking the line after each test case..

It is important to recall that every accepted challenge worth 4 points for the team and, at this round, wrong submissions and resolution time of each challenge are considered as tiebreakers. The next round, which will take place on September 14th, will be the special round of TecSinapse and, just as the Quantica’s round, will worth double points. Enjoy the long weekend and practice enough programming! See ya

Below are the links to the challenges of the fifth stage, each one accompanied by its possible solution. With them, it is possible to identify your mistakes and prevent them from happening again.

(Click on the name to download)

##### ROUND 4 (30/09) – Four challenges ? What now ?

The 4th round came and brought with it a bigger challenge than the four challenges proposed: how to manage the time and the attention of each contestant to maximize the performance of the group.

The challenges proposed in this round were, respectively: “Tradutor de Braille”, “Quem é o maior”, “Somando Placas” e “Alô, Alô, Marciano!”. In “Tradutor de Braille”, the task was to write a program that could translate a message, made up only by digits, from decimal to Braille. In the second one, “Quem é o maior”, a program that, given a word as input, would output if the ‘balancing’ of such word was possible or not according to the ‘balancing rules’ proposed in the challenge’s text and, if so, such balancing should be outputted. In the “Somando Placas” challenge, contestants had to sum the digits given in a car license plate as input and output only one digit, found by summing the resulting digits until one is left. And, lastly, in “Alô, Alô, Marciano!”, the program needed to output how many fingers the Marcian might have, based on the number of marbles given by him and its corresponding in decimal base, counted by a human (both were part of the input).

Apparently, the great majority of teams followed the advice given at the end of the third round and began their participation by reading all challenges to check which one was easier, starting, then, by challenge 3 (“Placas”), which, on the organizers’ point of view, was indeed the easiest. Following this strategy, 14 teams resolved at least one challenge and, among these, 13 have submitted a solution for challenge 3 first.

About the other 3 challenges proposed, challenge 1 (“Braille”) was solved by 6 teams, while challenges 2 (“Balanceamento”) and 4 (“Marciano”) were solved by 4 teams.

In our perception, one of the difficulties that some contestants have faced in this round was the necessity of using the ‘BigInteger’ type instead of ‘int’ while solving challenge 1 (“Braille”), since – apparently – not all contestants were aware that the ‘int’ type does not work for numbers higher than 2^31. The upper limit of type ‘int’ has only 10 digits, while on the challenge it was specified that the input could have a number of digits between 1 and 20. It is also important to point out that those who used the type ‘String’ to read the input did not faced this problem.

In this round it was still given – on the challenges’ source codes – the reading methods (using the classes ‘Scanner and the ‘hasNext()’ method). However, it is important to remember our recommendation of knowing this class and its methods since, soon enough, the input reading method will not be given anymore.

Below are the links to the challenges of the fourth stage, each one accompanied by its possible solution. With them, it is possible to identify your mistakes and prevent them from happening again.

(Click on the name to download)

##### ROUND 3 (23/09) – DOUBLE OF POINTS, DOUBLE OF DIFFICULTY

The third round of BXCOMP 2015 occurred last Wednesday (09/23/2015) and was attended by nineteen of the twenty teams subscribed in the championship. This was the first thematic stage of this edition and had the presence of Guilherme, Quantica’s employee and egress of the Informations Systems course of EACH-USP, who talked about the company and the partnership between them and the championship for the third time.

As also happened on the last, on this round three challenges have been proposed: *É plágio?*, *Topografia* and *As crônicas do Pacífico*. For the first challenge, considering two sequences of musical notes given,the teams had to determine if the second sequence was a plagiarism of the first. In *Topografia*, a land analysis was requested to seek possible holes, based on the depth of each soil portionand its neighbors. The last challenge, *As Crônicas do Pacífico*, had a more logical propose: it was necessary to find a solution to a puzzle.

However, the level of difficulty of such challenges was higher than the previous ones and this was reflected in the quantity of hits: only five correct submissions and no team managed to hit more than one challenge.

The greatest difficulty in the submissions was the presentation mode of response. Several teams hit the resolution of problem, but did not respect the determinations of the specifications text and therefore them had as response “Presentation Error”. For those who do not remember what are the possible causes of errors it is recommended to take a look at manual of BOCA(http://goo.gl/8tuWWu) again for the next stages, because any questions about manual content will no longer be answered by the organization. It is also important that teams pay attention when submitting a challenge and verify that the Java code sent corresponds to the selected challenge.

Another factor that caused problems to some teams was the use Scanner class methods, because to one of the challenges the stop condition to read the input hasn’t been specified and to deal with that, the method hasNext() should have been used. Because of that, we also suggest competitors to take a look at the Freshman Handbook (http://goo.gl/w9hWGc).

Another suggestion to the teams is to adopt a strategy that optimizes the resolution time. Divide the challenges among members can be a good choice.

Furthermore, it is always advisable to know how the methods of the Scanner class work, because in the future the input reading will no longer be provided.

Below are the links to the challenges of the third stage, each one accompanied by its possible solution. With them, it is possible to identify your mistakes and prevent them from happening again.

(Click on the name to download)

##### ROUND 2 (16/09) – WHAT??… three challenges?!

The BXCOMP 2015 second round occurred on Wednesday (09/16), and counted with the presence twenty teams registered. Initially, the championship’s organization explained the dynamic score and tiebreaker that from the it became effective – the criteria can to be conferred in championship’s regulation – for the championship.

In this round, it was proposed three challenges: “SomaString”, “Arbitragem” e “Calendário”.

On the first one, the input consisted in an integer, which indicated the number of phrase for the tests. The challenge consisted of reading the numbers in the phrase and print the sum of these numbers and the quantity of numbers displayed. In the second challenge, the competitors received as input a set of soccer matches results and they should print the difference between the current team score and its score if a goal from each match, converted to the team, were annulled. Last, the third challenge consisted in calculate the difference of days between two dates appearing in each row of set of tests.

The submissions errors affected in this round are Runtime Error, Wrong Answer e Presentation Error. In the first challenge, the most common error was not dealing the “zero” as it does not change the sum value, but it should be counted in the number appeared digits. In “Arbitragem” challenge, there were no significant problems. In third challenge, an error that some have encountered consisted in calculate the difference between the dates by absolute value rather than use days.

Another observation is about the attention in output formatting. The answer must be identical to those shown in the enunciation challenges. Wrong characters, extra letters in the output, accentuation and other cases returns Wrong Answer. Spaces, tabs and extra lines return Presentation

Error.

Recalling that each challenge properly submitted earned 4 points to the team and, in this round, were considered the wrong submissions just like time resolution of challenges as tiebreaker. The next round will take place on September 23th. Enjoy the interval and practice programming

because it is the best way to train

Below are the links to the challenges of the second stage, each one accompanied by its possible solution. With them, it is possible to identify your mistakes and prevent them from happening again.

(Click on the name to download)

##### ROUND 1 (02/09) – Another BXComp begins!

The BXComp 2015 first round took place on Wednesday (SET 2ND), and was attended by nineteen of the twenty teams registered. Initially, the teachers Fabio Nakano, Luciano Digiampietri and Marcelo Lauretto welcomed the students and they highlighted the importance of applying the knowledge acquired in the championship during graduation and the experience of a competition to molds of the official programming marathons. Then, the group PET explained the dynamics of a round and the manipulation of the BOCA system.

At this round, there were two challenges proposed: Mario Kart and Ousadia & Alegria. In the first, the input was made up of a set of values for the time spent by Guime and his friends in a contest of Mario Kart and based on the place of Guime, in a ranking with his friends, a message should be printed. In the second challenge, the contestants received as input a matrix of integers and your program should return the absolute value of the difference between the sum of the main diagonal values and the sum of the secondary diagonal values.

Overall, the submissions containing errors were quite similar. In Mario Kart challenge, a recurring error was to forget some of the conditions explained in the text, especially the conditions in which took place the draws, both of Guime with the first place as of Guime with the last place. Therefore, it is important to reiterate the need for great attention while reading the problems and that will be made more tests than those given as examples. In the second challenge, the most common error was encountered in the handling of the matrix, in which, during the iterations, some teams tried to access invalid indexes, negative or beyond bounds of the matrix.

Another important observation is about the care in formatting the output. The answer must be exactly equal to those explained in the output section. Wrong characters, surplus or missing letters and other cases return incorrect answer (Wrong Answer). Spaces, tabs, and more lines than expected, the BOCA system judges as “Presentation Error”..

In preparation for the next rounds, we suggest that the contestants read the manuals for the BXComp and BOCA system. Now that you have had an experience in the contest and interaction with the BOCA system, the manuals can be even more useful. Pay more attention when reading challenges. The understanding of them is obviously essential so that you can solve them.

Recalling that every challenge properly submitted earned 1 point for the team and at this round will not be considered the submissions or wrong time to resolve the challenges. However, in the next round, these two criteria will be very important for the classification, since it will be used as tiebreaker (to understand how the tie between teams is done, see the regulation of BXComp 2015). Moreover, the rounds will be worth 12 points from now. So enjoy our tips and get ready for the next round on 16 September.

Below are the links to the challenges of the first stage, each one accompanied by its possible solution. With them, it is possible to identify your mistakes and prevent them from happening again.

(Click on the name to download)