Proggy-buggy 2023
Today I participated in the online programming contest Proggy-buggy 2023, organized by Ukrainian company DataArt. This is my first programming contest, so I am excited to share impressions.
We were presented with 13 programming problems and had 42 minutes to solve them. Problems were indeed very simple: for example, the first one could be solved by multiplying two numbers given in stdin
, and the second one was a classical look-and-say problem (given one iteration, deduce the next iteration). At least two of the problems were trivial: the first had a huge introduction but required program to return constant, and the second required program to return any triple $(a,b,c)$ such that equality $a^n+b^n=c^n$ holds for some $n>2$.
I managed to solve only 5 problems, and my solution for the sixth problem failed on test examples (still not sure why, because we don’t have access to problems anymore). That problem was about finding the positive minimum in a sequence of numbers. I couldn’t understand the setup of one problem (even if it was very short), and I had solutions in head for two more problems but didn’t have time to type them. For other problems I didn’t even have time to read them properly.
I am happy that I managed to solve 4 of problems in Haskell (also that bad one was typed in Haskell). Only for the look-and-say problem I used Javascript as I thought the time limit could be a problem for a Haskell program (I had some problems with the limit while I exercised, see below…). One thing that surprised me with Haskell was how elegant and easy was to parse input form stdin
. Functions getContents :: IO String
, then words, lines :: String -> [String]
and read :: String -> Int
are all you need.
Unfortunately, the grading server stopped working ~5 minutes before the end and that stopped competition for all. I think I could manage to squeeze in one more solution and maybe fix that bad one. I couldn’t definitely solve all of them: for that you need to have full concentration and very fast fingers.
Server failure didn’t bother me too much, but some others things did:
- If you want to give solutions with the Go, you have to use
go 1
andgccgo
compiler. I think nobody does that in 2023. My first idea was to type solutions in the golang, but I quickly gave up on that. I have to be honest and say that many compilers for other languages are available (includingghc 8.something
, latest LTSnode
and even GNU Prolog!). - Exercise problems (which could be accessed before the competition) had some issues with grading. For example, time limits were too tight, or the grader would refuse a correct solution with an explanation the program’s output is badly formatted. I didn’t experience these problems on the competition, but I was close not to participate because of a bad experience while exercising.
- The grading server page looks and feels old (and as we saw it doesn’t scale well). For example, navigation is odd, and for each solution you have to select a compiler from the huge list (with tiny items).
- The information you get with emails is a little bit confusing. For example, one mail explicitly says I will not get any username/password information in a mail, and the very next mail contains a generated password for my account!
- Official information is not consistent: the first time I heard about the contest (from official promoter), Haskell and Golang were not on the list of supported languages. The official website is not updated regularly.
All problems aside, it was indeed a really fun contest, and I am glad I participated!