Competition Rules
for the 2nd Central-European Olympiad in Informatics (CEOI'95)

May 29 - June 3, 1995

Competition days

The competition consists of two rounds in two days, like at the IOI. In both rounds, the work time is five hours (from 9:00h to 14:00h), and the competitors will be given three problems to solve.

The competition days are Tuesday and Wednesday.


The computers will be IBM compatible PCs with a 33 MHz Intel 486 or 386 processor running MS-DOS 5.0. Only the computers and the software with built-in help facilities provided by the organisers may be used in the competition. In particular, the use of printed material will also be forbidden.

Programming languages

The following three programming languages are available:

o Turbo C++ 3.1

o Turbo Pascal 7.0

o QuickBasic 4.5

All the languages are fully installed with help files and examples.

Competitors may not bring any aids of their own, such as program disks, manuals, or books.


Apart from directories for the programming languages, there is a directory: CEOI. Competitors should work in this directory. Each programming problem will have its identification marked on the paper given to the competitors. The first problem on the first day is identified by "Day 1 - Problem A". Competitors should save the first program as DAY1A.BAS if it is a BASIC program, DAY1A.C, if it is a C program, and DAY1A.PAS , if it is a Pascal program. The program DAY1A should read its input data from a file called DAY1A.DAT, and write its output to a file DAY1A.SOL.

The solution has to be an EXE file. The solution to the problem "Day 1 - Problem A" has to be called DAY1A.EXE.

The same rules apply to the other problems on day1 and day2.


The competitors get the three problems for each day in two copies, one written in English and one translated by their team leaders into their native language.

Within the first half an hour the competitors may submit written questions (either in English or their national language) to the jury concerning the formulation and interpretation of the problems. Only questions that can be answered with "Yes", "No" or "No comment" may be accepted. The answers will be produced by the members of the SC and approved by the chairperson of the SC as soon as possible.

No special hardware requirements or software packages (e.g. no graphic packages) will be needed to solve the problems. All problems and eventual additions or corrections will be given to the competitors in writing, oral communication will be avoided.

Input data

For all problems input data will come from an ASCII file which will be called DAY1A.DAT for the problem "Day 1 - Problem A". This is the case even if the program will need only a single number. No tests of the input data are necessary. For all input files one can assume that the input data correspond to the problem statements.

Input data will be either integers or strings. Since the file always begins with one or more numbers defining the number of integers or strings that follow, competitors do not have to check for end-of-file conditions. Two integers in the input file will be separated by either a single space character or a newline. The number of integers in a line will be clear from the problem statement. A string is always terminated by a newline. Every problem has an example input file which will also be shown on the problem paper.

Do not read anything from the keyboard, not even a keystroke.

The input file must be searched in the current directory.

Here are examples of how to open an ASCII file and read a value for the integer variable N in the three languages:

Turbo Pascal

Var infile: Text;


Assign(infile, 'DAY1A.DAT');


Read(infile, N);

Turbo C++

#include <stdio.h>

FILE *infile;


infile = fopen("DAY1A.DAT", "rt");

fscanf(infile, "%d", &N);





Output data

The results of the program are always to be written to the ASCII file which will be called DAY1A.SOL for the problem "Day 1 - Problem A".

The file has to be formatted exactly as stated in the problem. Never add any texts of your own!

Do not write anything to the screen. The program has to exit when the output has finished.

The output file must be placed in the current directory.

Here are examples for the three languages of how to create an ASCII file and write the value of the integer variable N on it:

Turbo Pascal

var outfile: text;


Assign(outfile, 'DAY1A.SOL');


Write(outfile, N, ' ');




Turbo C++

#include <stdio.h>

FILE *outfile;


outfile = fopen("DAY1A.SOL", "wt");

fprintf(outfile, "%d", N);





PRINT #1, N;




Shortly before the competition ends, each competitor should make identical copies of her/his solutions on two diskettes; one diskette for her/his team leader, and another one for the evaluation procedure as back-up versions of the original solutions. Give both diskettes to an official. One of them will immediately be given to the team leader.

No extra time will be allowed for copying. It might therefore be good to copy solutions as they are done.

It is the EXE file on the diskette that will be tested.

Files containing the source code of the solutions should also be copied on the diskettes. The source versions might be used in case of loss or corruption, and later for documentation purposes.


Grading is done after the end of the competition. The competitors and their team leaders will take part in the grading. There will be lists with the approximate time for their turn to be graded.

The role of the competitor and the team leader is restricted to advice the evaluator when she/he needs advice; in particular, neither the team leader nor the competitor may operate the computer. Moreover, the team leader has the right to express his agreement or disagreement, in writing, with the evaluator (explained below).

For each problem there is a set of up to 10 test examples that have been prepared in advance. Each test will be announced with the maximal allowed execution time (in seconds) and the number of points a correct answer will give.

The grading starts with copying the contents of the diskette into the hard disk. Evaluation computers are identical machines with 33 MHz Intel 486 processor.

The grading will be done by a program that looks for the EXE file with the correct name. It starts the competitor's program, measures the execution time and prints out the resulting output file. The evaluator compares the answers against the expected results.

Then the team leader and the evaluator should discuss the answers, and try to agree upon the preliminary evaluation. At the end of the evaluation session, both the evaluator and the team leader fill out and sign two identical copies of the report forms, one for the evaluator, and the other one for the team leader; in case of disagreement, the team leader may explain his position to the evaluation committee on these report forms.

The evaluation procedure concludes with the meeting of the Evaluation Committee, where the evaluation reports will be discussed, and disagreements will be dissolved by voting. It is the responsibility of the Evaluation Committee that a just and balanced evaluation is achieved.

Finally, the chief evaluator presents the anonymous (!) results to the International Jury to take final decisions. If a team leader can not accept the results of the evaluation, she/he may address her/himself to the International Jury.