ICPC Cyprus

The ICPC-Cyprus 2018 is the national programming competition sponsored by ACM ICPC, CCS and the Digital Champion for university students, organised for the first time in 2017. The competition gives the opportunity to teams of Computing students from different universities in Cyprus to interact, and to demonstrate their problem-solving, programming and teamwork skills. The winning team gets to represent Cyprus in the corresponding European Competition and if successful, moves on to the international ICPC finals, held each year in the USA by ACM.

csf-logo css-logo DigitalChampion-logo gss-logo xm-logo cn-logo


The ICPC-Cyprus Programming Competition adopts the mission of the ACM ICPC, i.e. the ACM International Collegiate Programming Contest, to provide college students with opportunities to interact with students from other universities and to sharpen and demonstrate their problem-solving, programming, and teamwork skills. The contest provides a platform for ACM, industry, and academia to encourage and focus public attention on the next generation of computing professionals as they pursue excellence.

Why Participate

The winning team will participate in the ICPC Regional Competition, which leads to the ACM ICPC International Competition. Cyprus falls under the South Eastern Europe Regional Competition (SEERC), and the organizing committee of the ICPC-Cyprus is collaborating with SEERC Organizers to ensure an exciting event for all participants. In addition to the Regional Qualification, winning teams will also become the recipients of several prizes.


The language of the Contest is English. All written contest materials will be in English.

Technical Details

During the Online Registration, each team’s coach must select one programming language for the team out of the list of languages allowed each year. In the 2018 competition (29th September 2018, University of Cyprus), the programming languages of the ICPC-Cyprus are: Java, Python and C++. Once registered each team will receive a more detailed description of the programming environment they will be using, based on their programming language selection. Furthermore, given their selected programming language, each team will be placed in a lab where the appropriate setup is available and judges from across Cyprus will be observing their attempts to complete their programming solutions. The list of judges will be publicized on this website after the competition.


Team Composition

A representative of the higher education institution, typically a faculty member, must serve as the team coach. The coach certifies the eligibility of contestants and serves as the official point-of-contact with the team prior to and during contest activities. A team may only have one coach and the coach cannot also be a contestant. The coach must fully register his/her teams in the ICPC-Cyprus Registration System within the time set by the competition rules which, for the 2018 contest, is no later than Sep 24th 2018 [given that there are still seats available]. A team is not eligible to compete in the regional contest until the General Chair of the contest has accepted the team. The team coach will be notified in that case. A team can have a reserve player, who can substitute a contestant in case of emergency but the reserve player must also be registered by the coach. The reserve player does not have to be on site on the day of the competition. Finally, each team consists of three contestants who are eligible to compete according to the rules described above.


Through a successful participation in the ICPC-Cyprus Programming Competition, teams qualify to advance to the South Eastern Europe Regional Contest. Any number of teams from a given higher education (HE) institution can participate as long as all the team members are students of the same HE institution [Student cards (with study dates) must be presented on the day of the competition – if your student card does not show the study dates please have available a recent school transcript]. The higher education institutions that can participate must be located in Cyprus. Student teams can register to the competition for FREE.

A team must be made up of 3 members and it will compete on 1 programming machine (which WILL BE provided by the organizers). The team should also have a registered coach. The coach of a qualifying team is the point-of-contact prior to and during the ICPC-Cyprus Programming Competition activities. A contestant of a team may NOT serve as the coach. The coach must provide additional information during registration. Qualifying teams will be issued an invitation by email and postal mail (if requested) soon after completing certification. See section on Team Composition .

Teams failing to comply with any of these requirements will be ruled ineligible to compete in the ICPC-Cyprus Programming Competition. In the event that a team member is unwilling, unable, or unfit to compete in the competition, the coach must notify the General Chair of the competition in a timely manner.

The on-site registration must be preceded by the online registration (one registration per team by the team coach). The online registration is available <here>. At on-site registration (Sep 29th at the University of Cyprus), participants must provide picture ID and proof of studies (e.g. a student card with a recent picture and study dates would be sufficient). Note that contestants must show proof of enrolment at the university during the term of the contest, so if the student card does not provide study dates, then a recent transcript or a letter from the university should be provided.

Past Problems


Show Problem

Anne works as a cake decorator for a prestigious confectionary. She uses four different types of decorations for each of her cakes that she has to buy every week. Given that she is only allowed a fixed budget for this weekly purchase, she has to buy the decorations without exceeding the fixed budget limit L.

Although Anne’s budget is limited, she still wants to have cakes with all four different types of decorations, type A, B, C, and, D. How many cakes with “different” decorations can be created by Anne, given the budget limit L for the week, i.e. how many cakes can Anne create until she is forced to create a cake, which has the exact same decorations with another cake she had already created before?

Consider that your input will include the budget limit L and the prices of all decorations of type A, all decorations of Type B, all decorations of Type C and all decorations of type D. Your output should be the number of cakes with different decorations that can be created provided that two cakes are different if they differ in at least one ornament of the four used ornaments.

Input Specification
Each test case starts with a line containing five integers L, A, B, C, D, (1 ≤ L ≤ 108, 1 ≤ A, B, C, D ≤ 5 000), separated by a space, representing (in this order):
- the budget upper limit,
- the number of available Type A decorations,
- the number of available Type B decorations,
- the number of available Type C decorations, and,
- the number of available Type D decorations

Each of the next four lines contains a list of prices. The first line contains the price list for the Type A decoration, the second line contains the price list for the Type B decoration, the third line contains the price list for the Type C decoration, and the fourth line contains the price list for the Type D decoration. All items in all lists are positive integers not exceeding 100. There is one empty line after each test case . The input is terminated by a line with five zeros.
The program will be tested using a file input with all the test cases.

Output Specification
For each test case print on a separate line the number of different cakes which can be created from the four decoration types and have price not exceeding L.


Show Problem

Shawn has been a well-known chef for years and is now preparing a book of dessert recipes. He is very happy with his work but as he completed the typing of the first few recipes, he realized that he forgot to specify the type of flour that the readers of his book should use.

To help Ernest out, create a program that asks Ernest for the filename of the recipe and the type of flour, then reads in the recipe, i.e. one recipe in one page (1 - 45 lines of text), and adds the type of flour in front of the word “flour” throughout the recipe.

Create a new file that contains the corrected recipe and output, in standard output, the number of occurrences of the word “flour” in the original recipe.

Input Specification
The recipe file exists in the same folder as the main program file.
The submitted program should request from the user interactively the name of the file and the type of flour for the specific recipe.

Note: The recipe files will only contain lowercase letters.

Output Specification
For each test case create a new file in the same folder as the recipe text file, name it newfile.txt and write the modified recipe in this file.

In standard output, output the number of occurrences of the word “flour” in the recipe file.


Show Problem

You will be given a total number N of marbles, which are to be deposited into three separate containers. There is a lower limit L on the number of marbles that must be kept in each container.

Find out in how many ways might these N marbles be placed into the containers in such a way that the number of marbles in each container does not contain digit ‘3’ in its numerical representation.

In this problem, do not distinguish between individual marbles as they are all more or less of the same size and material. Only distinguish between the containers.

No marble can be divided into pieces.

Input Specification
The test cases are given as a text file and are separated by an empty line.
Each test case consists of a single line containing two integers N, L (1 ≤ N ≤ 1010 000, 1 ≤ L ≤ N/3) separated by space and representing the total number of marbles and the lower limit on the number of marbles which have to be placed in each of the containersstrong>.

Note: The input is terminated by a line with two zeros.

Output Specification
For each test case print on a separate line the number of possible divisions of the marbles into the three given pools.


Register for competition

Follow the steps below and become a participant!

Login With ACM

Login or register if you do not have an account

Register Your Team

Complete ONE registration per team, giving a name for the team and the names of the team members.

Contact Us

For registration issues contact the Contest Director for ACM, Dr. Josephina Antoniou




Dr. Josephina Antoniou
Dr. Josephina Antoniou
UCLan, Cyprus
Cyprus Collegiate Programming Contest Director for ACM

For more information or queries about the event, you can contact at jantoniou@uclan.ac.uk

Dr. Georgia Kapitsaki
Dr. Georgia Kapitsaki
University of Cyprus
Local Event Chair
Dr. Klitos Christodoulou
Dr. Klitos Christodoulou
Neapolis University in Cyprus
Organising Committee Member
Dr. Vicky Papadopoulou-Lesta
Dr. Vicky Papadopoulou-Lesta
European University Cyprus
Organizing Committee Member for ACM-ICPC Cyprus
Dr. Panayiotis S. Charalambous
Dr. Panayiotis S. Charalambous
University of Cyprus
Competition Judge
Dr. Nearchos Paspallis
Dr. Nearchos Paspallis
UCLan, Cyprus
Organising Committee Member
Dr. Panayiotis Andreou
Dr. Panayiotis Andreou
UCLan, Cyprus
Competition Judge
Panepistimiou 1, Aglantzia 2109, Nicosia, Cyprus
(+357) 22892700 (for instructions to the Department of Computer Science, working hours only)

*The competition will take place at laboratory B121 of the Department of Computer Science at the building of Pure and Applied Sciences (FST-01 or ΘΕΕ-01). For more information about reaching the building, please consult: https://www.cs.ucy.ac.cy/index.php/contact-us