Algorithmic and search-space problems in multiple programming languages.
Exercises for course Programming Languages I, 6th semester 2021 of the Electrical and Computer Engineering School at the National Technical University of Athens.
The goal of these exercises was the comparison between different programming types (imperative, functional, logical, object oriented).
It was accomplished by solving various algorithmic and search-space problems, with tight time and memory constraints, in the following languages: C++, Standard ML, Prolog, Python and Java.
longest: Given an array and integer k, find the longest subarray with average sum greater than k.
Solve in C++, Standard ML and Prolog.
loop_rooms: Given a 2d matrix of directions, find the total number of cells that belong in a loop.
Solve in C++, Standard ML and Python.
qssort: Given a list of integers, find the shortest sequence of moves that sort the list using a queue and a stack.
Solve in Prolog, Python and Java.
round: Given N towns and K cars, as well as an array that stores which town each car starts from, find the shortest number of right moves to move all cars to the same city
and said city, provided the cars move alternatively.
Solve in Java, Standard ML and Prolog.