Today in the Portuguese city of Porto, the final of the ICPC 2019 international programming competition will be held. Representatives from ITMO University and other teams from universities in Russia, China, India, the United States and other countries will take part in it. Tell you more.
icpcnews / Flickr / CC BY / Photos from the final of ICPC-2016 in Phuket
What is ICPC
ICPC is an international student programming competition. They have been held for more than 40 years - the first final was held back in 1977. Selection is carried out in several stages. Universities are divided by region (Europe, Asia, Africa, America, etc.). Intermediate stages are arranged in each of them, in particular, the semi-final of Northern Eurasia was held at our university . The winners of the regional stages take part in the final.
')
On the ICPC, teams of three participants using a single computer (not connected to the Internet) are invited to solve a number of problems. Thus, in addition to programming skills, teamwork skills are also tested.
For the duration of the competition, teams will receive one computer for three. It runs under Ubuntu 18.04 and has pre-installed vi / vim, gvim, emacs, gedit, geany and kate editors. You can write programs in Python, Kotlin, Java or C ++.
When a team solves a problem, it sends it to a testing server, which evaluates the code. Participants do not know what tests the machine is conducting. If all of them pass successfully, the team receives prize points. Otherwise, an error is generated, and students are sent to correct the code.
According to the rules of ICPC, the team that wins the most tasks wins. If there are several such teams, the winner is determined by the smallest penalty time. Participants receive penalty minutes for each solved problem. The number of minutes is equal to the time from the start of the competition to the acceptance of the task by the test server. If the team has found a solution, then it gets another twenty minutes penalty for each wrong attempt to pass it.
icpcnews / Flickr / CC BY / Photos from the final of ICPC-2016 in Phuket
Examples of tasks
Championship tasks require teams to work together and concentrate. Additionally, they test the knowledge of individual mathematical algorithms. Here is an example of a job that was offered to ICPC 2018 participants:
In the printing house there is the term "river" - a sequence of spaces between words, which is formed from several lines of text.A certain river expert (present) wants to publish a book.He wants the longest typographical rivers to form in monospaced print on the page.Participants needed to determine the width of the fields at which this condition would be satisfied.
At the input, the program received an integer n (2 ≤ n ≤ 2 500), which determines the number of words in the text.Further, the text was entered: words on one line were separated by a single space and could not consist of more than 80 characters.
At the exit, the program had to show the width of the fields at which the longest “river” is formed, and the length of this river.