ROUND 7 (9/11) – And the winners are…
The seventh and last round of BXCOMP happened on Wednesday (11/09), and had the presence of 18 from the 20 teams enrolled. The round also counted with a special scoreboard showing the position on the championship’s rank of the teams live, with the goal of increase the competitive between the participants, since the score of each team on the last round was not revealed before this last round.
The first challenge was named “O Jogo da Captura”, it was the most complex of the round. In it, the participants had to implement to a specific version of the Checkers game, a move that capture the largest number of parts possible, and show the path that the part went through. The challenge involved concepts about “BackTracking” and an evaluation function to solve the problem. None of the submission made from the competitors for this challenge was correct, what indicates that the competitors knew how to manage well the time of the round to solve the challenged proposed, since this challenge would demand the most time to reach a resolution.
The second challenge, “Artes”, had the goal to cut a wooden board, in order to get smaller pieces in a way that the cost to do this was the lower as possible, considering which cut has its base cost and its final cost is calculated with he cuts already done. The solution of the challenge consisted in a greedy algorithm that the bigger cost’s cuts should be done first, so it would have a smaller multiplicative factor. For this challenge 3 out of the 6 teams that submitted for this challenge was correct.
The third challenge, “A Lista de Steiner”, had the goal to verify if a number is a palindrome or not, when represented in a specific range of numerical bases. This challenge was the least complex of the round, the main difficulty was the conversion to numerical bases larger than 10, to solve this case it should be used special characters in the representation of the numbers. Even thought this was the easiest challenge of the round, only two teams reached the correct answer. We believe that this happened because the fourth challenge looked like to be easier than it really was, what took the teams to focus on it.
The fourth and last challenge was “Evitando a má sorte”, and it had the goal to determine who wouldn’t be the first to get the last potato from one of the bags, based on the number of potato bags and the number of potatoes in each bag. This challenge was the one with the biggest number of submissions, and only one of the teams reached the correct answer. The solution involved the logical thinking of the problem and not the attempt to calculate the exact potato quantity withdrawal from the bag in each step. The biggest target of attention was to verify if the number of potato bags was par and the special case when the bags started with one potato each.
In the end of the round, took place the closing ceremony of the championship, which counted with the illustrious presence of the teachers Daniel Cordeiro, Fábio Nakano, Ivandre Paraboni, Luciano Digiampietri, the PET-SI’s group tutor Sarajane Peres, and the Lexis Nexis’s representatives Caio and Brian. They said a few words to the competitors, congratulating them for their effort during the whole championship. Lastly, it happened the medals delivery and the prizes for the winners. The winners teams of VI BXCopm was: Tilt, Armored Dawgs and Codi Builders, respectively in first, second and third place.
We thank the participants, Lexis Nexis and the teachers for their support in the successful accomplishment of VI BXCOMP! And let VII BXCOMP come!
The following links are the possible answers to each challenge.
(Click on the name of the challenge to download)
• O Jogo da Captura
• Artes
• A Lista de Steiner
• Evitando a má sorte
ROUND 6 (19/10) – DOUBLE POINTS! DOUBLE SURPRISES!
The sixth round of BXCOMP happened on Wednesday (October 19th), and was attended by sixteen of the twenty teams registered. At the beginning of the round the tutor of PET-SI, Prof.ª Drª Sarajane talked about the company LexisNexis – cultural supporter of the championship and theme of the round’s challenges – as well as its area of operation. The students were also told that there would be a surprise at the end of the round and, therefore, they should keep the codes they eventually solved. It was proposed three challenges, all in english: Encryption, Optimization and Sentiment Analysis.
The first proposed challenge, Encryption, was the one with more correct submissions. The teams were supposed to write a program for encrypting a sentence using a scheme that decomposes it in rows and columns and the encrypted message was obtained concatenating the characters in each column, forming words. Although it was the challenge with the highest number of correct submissions of the round, it was also the challenge with the highest number of submissions with wrong answer due to improper concatenation caused by a subtle logic error. The implementation submitted by some teams read beyond the string length, that depending on the test case, it concatenated empty characters. This concatenation did not generate visual differences from the expected output, however, due to char being a primitive type in Java, they have a corresponding value in the ASCII table and caused differences in the variables, including the length of the string that was concatenated. The teams that had success in this challenge made use of some conditional structure to avoid the concatenation beyond word boundaries or concatenation using String objects instead of char primitive type. In addition, there were also submissions that failed due to the display in the output, in most cases the teams forgot a line break between test cases, generating Presentation Error.
The second proposed challenge was the Optimization. It was proposed the implementation of a program that divides the price of rubber between different factories in order to obtain the lowest possible final cost. The prices are calculated from a provider’s predefined rule in a way that the final price of a certain amount of rubber that a single customer purchase is greater than the final price of the same amount when purchased by several different clients. Despite the logic does not seem very obvious, the implementation could be done in a very concise and elegant way, using a greedy strategy (check out the official resolution).
Finally, the third challenge – Sentiment Analysis – involved checking and organizing tweets by its humor, through a heuristic provided in the problem itself. In addition, it was necessary to group the tweets through hashtags – markings that defined its subject – indicating which users wrote the most positive and most negative tweets for each one of the different topics. The solution required more work to implement due to the input reading. Only one team, Tilt, submitted the challenge correctly and, therefore, was the only team to solve all the round challenges.
At the end of the round, it was said that the first three teams who correctly solved the challenge Encryption could win a prize given by LexisNexis. Each of the three teams received an encrypted phrase that would be used as program input for the location of the prize. The three teams that solved faster the challenge Encryption were ForDummies, Missing Files and Nome Daora. Congratulations to the teams that competed to the prize, especially to the team Nome Daora which was the first to find the location.
See you at last round!
The following links are the possible answers to each challenge.
(Click on the name of the challenge to download)
• Encryption
• Optimization
• Sentiment Analysis
ROUND 5 (05/10) – More adventures and challenges!
The BXCOMP 2016’s fifth round happened on Wednesday (05/10), it was attended by sixteen of the twenty teams registered. At the beginning of the stage, the team Computreta was announced as the winner of cultural contest “PET-SI reveals…”, as a reward, one of its members burst the balloon which started the championship stage.
At this stage, three challenges were proposed: Pirates, Gastronomic Adventurer and Rune Merchant. The first challenge, was the most difficult, could be solved in many ways. In this problem, the contestants should answer if there is a safely way to find the treasure. A possible efficient solution uses two search: while the ship is on sea, search for ground or treasure; while the crew is on ground search for treasure. Both searches can be done using recursion, taking the coordinates x, y as parameter, signaling this position as visited and doing the recursive call for the (x,y) neighborhood. Just one team has submitted solutions for this challenge, but no one was accepted.
The second challenge, Gastronomic Adventurer, is to develop a software that, given the positions of restaurants and pharmacies along a highway, calculate the minimum distance of each restaurant to the nearest pharmacy and determine which of these distances was the smallest. By presenting a lower level of difficulty for the first challenge, it was solved by most teams.
The third challenge, Rune Merchant it is an exercise which competitors need to implement a solution that, given a set of runic symbols, find the numerical value this represented. The number of correct submissions to this challenge equals the Gastronomic Adventurer. In this step, most teams performed well, solving at least one of the proposed challenges.
New challenges await us in the next step! And as says the writer Clarice Lispector, “a little adventure frees the captive soul from the tormentor daily” 🙂
The following links are the possible answers to each challenge.
(Click on the name of the challenge to download)
• Pirates
• Gastronomic Adventurer
• Rune Merchant
ROUND 4 (28/09) – FOUR CHALLENGES?!
The BXComp 2016’s fourth round happened on Wednesday (28/09) with the presence of the most teams. Before the round started was proposed a cultural competition “PET SI discover that … “ and the team that won could pop the balloon to start the fifth round.
In the stage, it were proposed four challenges for the first time at the competition in this year: “Código Da Vinci”, “Triângulo”, “Sábio das duas matrizes” e “Quem quer dinheiro?”. Some challenges had problems with reading and printing of the output, for not following the standards of the previous round. The teams that used nextLine() had trouble with reading generating runtime error for to try reading a blank line that didn’t exist, whileas the teams that used nextInt() or next() didn’t have problems.
The first challenge, “Código da Vinci”, was to find a password given a sequence of numbers and if it was palindrome then subtract a unit and then reverse the result. As well as already occurred in other stage the solution could involve the function charAt(). The second challenge, “Triangulo”, it was the most resolved by the teams and the goal was given three measures say if he could form a triangle and, if possible, sort it in isosceles, equilateral and scalene. The third and fourth challenge, respectively, “Sábio das duas matrizes” and “Quem quer dinheiro?”, involve working with arrays and were more laborious when compared to the first two challenges because it has to check more conditions, which may contain a large number of repeating loops.
Overall, just some teams failed to resolve any challenge, but, this stage had its weight reduced due to the problems that occurred. We stress that it is important to adopt a strategy to divide the challenges between team members and avoid being in the same challenge until it is resolved. Congratulations to all teams for performance and a good fifth stage for everyone.
The following links are the possible answers to each challenge.
(Click on the name of the challenge to download)
• Código Da Vinci
• Triangulo
• Sabio das duas matrizes
• Quem quer dinheiro?
ROUND 3 (21/09) – NO INPUT READER
The BXCOMP 2016’s third round happened on Wednesday (21/9), it was attended by nineteen of the twenty teams registered, moreover, in the early of the stage, the tutor of PET-SI group, Sarajane Marques Peres, welcomed the students and thanked the participation and collaboration of all the championship. At the end of the stage the teams received the championship t-shirts.
At this round, we proposed three challenges: Bhaskara, Factorial and Rabbits. These challenges proposed the programming application to solve mathematical problems and required special attention to read the input and set the output.
The first challenge, Bhaskara, proved to be the most difficult challenge of this stage, it was required the coefficients of a quadratic equation, passing them as parameters to a function provided in the java file and presents the roots of the equation. The most difficult challenge was input reading, since the coefficients had no order or default position. In addition, several teams forgot to present the roots in ascending order.
The second challenge, Factorial, was the most solved challenge, asking to the student to perform a program from printing the factorial numbers that make up a whole. Finally, the third challenge, Rabbits, was to display the month on which a certain amount of rabbits was reached, however, the rabbits were multiplied following the Fibonacci sequence.
Competittors faced some difficulties in printing the output of the challenges, trying to separate the numbers that made up the factor by spaces and avoid extra spaces at the end and the Bhaskara, separate test cases with a blank line and not print a line break after the last test case. It notes that the format of the outputs of the challenges must be equal to the sample output displayed in the statement.
None of the java files provided to contestants contained input reading method. We recommend knowing how the methods of the Scanner class, as input reading can not be provided in the next steps.
We suggest that teams develop a strategy that optimizes the time resolution, like divide the challenges among members and read all the challenges before you start solving them, because the challenges are not sorted according to their level of difficulty.
Remember that every challenge properly submitted worth 4 points for the team and at this stage the wrong submissions were considered, as well as the time resolution of the challenges, these two items are important to the tiebreaker in the championship ranking. The next round will take place on 28/09.
The following links are the possible answers to each challenge.
(Click on the name of the challenge to download)
• Bhaskara
• Factorial
• Rabbits
ROUND 2 (14/09) – GOTTA RESOLVE’EM ALL!
The BXComp 2016’s second round happened on Wednesday (14/09) with the presence of all the teams. Initially, the organization reminded the competitors about some rules related to the score.
The challenges proposed in this round were, respectively: Gotta catch them all, Tesouro and Números amigos. In Gotta catch them all, the task was to write a program to calculate the duration of the Teacher’s adventure based on the quantity of Blastoise’s food. The most common mistakes in this challenge was related to the limit provided by the teacher. As described in exercise, the last day of adventure was that, after Blastoise’s meal, remains less than one kilogram of Blastoise’s food. However, the teams identified this error and corrected. Other errors were not directly related to this particular challenge.
There were other ways to resolve the second challenge, the most appropriate way was identifying the pattern and removing the repetitions. Most of the teams used this strategy, identifying that the first letter of repeated passage was the second vowel accounted from the end of the original word. Like the word “sanduiche”, the second vowel accounted from the end is the letter “i”, then, the tool that captured mistakes, captured sanduiche like “sanduicheiche”. However, identify the repetitions that started with vowels was a way to resolve this too.
To resolve the third challenge, it was necessary to verify each value x across the range and check the summing y of the divisors ensuring that the summing was across the range and the summing of the divisors of y was equal to x.
Overall, the most of common mistakes, they were not directly related to the challenges, were related to the answer, Presentation Error, and during the execution, Runtime Error. This mistakes happened because some teams forgot to print a blank line and update the test’s counter.
Congratulations to all teams for performance and good luck in the next rounds!
The following links are the possible answers to each challenge.
(Click on the name of the challenge to download)
• Gotta catch’em all
• Tesouro
• Números amigos
Round 1 (31/08) – The championship started!
In this last Wednesday (31/08), it happened the BXComp 2016’s first round with the presence of all the teams participants and the illustrious presence of the teachers Alexandre Freire, Daniel Cordeiro, Ivandré Paraboni and Luciano Digiampietri. Before the round started the teachers talked with the students about the importance of the participation of the freshman in the championship. And then, the petianos explained how each round is made and talked about the utilization of the system BOCA.
In the round, it were proposed two challenges “Decodificando” and “Quem está ganhando?”. The first challenge had the goal to use numerical arrays to find the position of the letters that made part of a secret message. The second one was meant to show who was winning in the Olympic medals board, based on the quantity of medals that the athlete of each county has conquered.
To resolve the first challenge, it was necessary to use the java method toCharArray(), or the method charAt(), both from String class. These methods are very common and knowing them will help during the championship. In relation to the answers, the most common mistakes were related to the presentation, generally with more blank spaces than necessary or with the excess or missing blank lines. Being important to remember that the challenges are judged by BOCA, so the answer of the teams are expected to be in a specific output which it’s declared in the challenge.
To resolve the second challenge it was necessary to identify the cases not treat by the code given. These cases were related to the tie cases, mainly in the reading of tie case, before reading which country should be the leader. Some important tips for the next stage are:
• Read and understand the challenge’s solution (link down below)
• Read all the challenges and the codes delivered before starting to solve them, the order of solving them can influence in your performance.
• Test the code in your computer could help you to understand which the errors that you are facing are.
• Look forward to understand well the problem and all its test cases it is essential to solve the challenge.
Therefore, it is important to say that in this round, each correct answer sent means 1 point and the number of wrong submissions and the time to solve the challenge are not considered. However, from next stage on this criteria will be used for tie situations.
The following links are the possible answers to each challenge.
(Click on the name of the challenge to download)
• Decodificando
• Ganhou