Michal Forisek

Learn More
We analyze the computational complexity of various twodimensional platform games. We identify common properties of these games that allow us to state several meta-theorems: general constructions that allow us to identify a class of these games for which the set of solvable levels is NP-hard, and another class for which the set is even PSPACE-hard. Notably(More)
In online graph coloring a graph is revealed to an online algorithm one vertex at a time, and the algorithm must color the vertices as they appear. This paper starts to investigate the advice complexity of this problem – the amount of oracle information an online algorithm needs in order to make optimal choices. We also consider a more general problem – a(More)
We show how Item Response Theory (IRT) can be used to define a new type of rating system, one that is especially suitable for programming competitions (and other types of competitions where difficulty of competitions varies between rounds). We show some useful theoretical properties of this rating system, including the ability to argue about hardness of(More)
In this paper we show a polynomial-time algorithm to find the best rational approximation of a given rational number within a given interval. As a special case, we show how to find the best rational number that after evaluating and rounding exactly matches the input number. In both results, “best” means “having the smallest possible denominator”.
In this paper we examine currently used programming contest systems. We discuss possible reasons why we do not expect any of the currently existing contest systems to be adopted by a major group of different programming contests. We suggest to approach the design of a contest system as a design of a secure IT system, using known methods from the area of(More)
The paper investigates a version of the resource allocation problem arising in the wireless networking, namely in the OVSF code reallocation process. In this setting a complete binary tree of a given height n is considered, together with a sequence of requests which have to be served in an online manner. The requests are of two types: an insertion request(More)
In the disjoint path allocation problem, we consider a path of L + 1 vertices, representing the nodes in a communication network. Requests for an unbounded-time communication between pairs of vertices arrive in an online fashion and some central authority has to decide which of these calls to admit. The constraint is that each edge in the path can serve(More)
For many programming tasks we would be glad to have some kind of automatic evaluation process. As an example, most of the programming contests use an automatic evaluation of the contestants’ submissions. While this approach is clearly highly efficient, it also has some drawbacks. Often it is the case that the test inputs are not able to “break” all flawed(More)