"We pretty much allocate problems randomly at the start and if we have ideas, we just go ahead and solve them ourselves," said Ong. "Each of us has our own specialties in the types of problems that we tend to favor, but if we have trouble solving the problem in a certain amount of time, we tend to give it to another member to give it a second look."
Li agrees, finding that communication between teammates is critical when puzzled on a specific problem. "We will discuss it with each other when we get stuck," he said. "We'll print out preliminary code if it's a little 'buggy' and look through it. We'll go over the ideas with pen and paper and, at the end of the day, there are pens and paper all over the place because we use a lot."
In this intense battle of logic, mental endurance and speed, the Yale team relies on past competitions to prepare for the challenges ahead.
"The three of us did a lot of these competitions back in high school so we were able to draw on a lot of the similar experiences," Li said. "There's a lot of algorithms and data structures that can speed up solutions, but it would probably be way too slow for what [the judges] are looking for. We need to figure out which algorithms – which tricks – might speed things up and by doing enough problems it really gets you to have better intuition. So, we will be refreshing our coding and algorithms, running through a few rounds, and then continuing to communicate about our strategy."
The team's lasting success is especially remarkable since the achievements were completed in the students' spare time. Many larger institutions provide professional coaches who are former competitors, dedicated to training their teams. The Yale team managed to best programming powerhouses Princeton, Columbia, Cornell, Rutgers, and NYU at the ICPC Regionals by training independently while managing other academic responsibilities and extracurricular activities.