LAN QIAO International Collegiate Programming Contest 2018

Date: November 2nd, 2018

Location: Two branches, Princeton and Boston, the United States.

Tel (United States): + 908-581-5414

Download

Registration Process:

  • 1. Enter en.lanqiao.org and click on the registration.
  • 2. Download the registration form and fill in it. Please submit your registration form and the 2-inches bareheaded e-photo to baoming@lanqiao.org via email before October 25, 2018. Each register will receive a confirmation email once your registration is accepted.
  • 3. The organizing committee will send the electronic admission ticket to your mailbox, one week before the contest. Please download and print it by yourself.
  • Introduction
  • Competition Tasks
  • Competition Ruels
  • Competiton system manual

Contest form

The contest includes: team contest, individual contest, design contest, international contest. The contest is divided into preliminary and final.

Entry Objects:

China: Undergraduate and higher vocational college students.

International: Undergraduate students.

Contest Requirements

1.Each player is required to take the following documents, and admitted after the verification of identity.

  • (1)Admission ticket;
  • (2)Student ID card;
  • (3)Social Security Card/Passport/Driver’s License(take one of them)。

2.Each player must bring his own laptop to attend the contest individually.

3.Each player must use one programming language from C, C ++ and Java to resolve 8 to 15 questions in 5 hours.

Prizes

10 first prize and a number of second prize and third prize. All players will be awarded the certificate of Lan Qiao Cup International Contest.

1st prize:

First place: Apple's new electronics;

Second place: Apple's new electronics;

Third to tenth places: Apple's new electronics.

In addition, the foreign players who award first prize will have the opportunity to be invited to visit China. During their visit, they can conduct surveys on China's information technology and relevant start-up opportunities.

There will be 8 tasks in the competition. Each will be assigned some sore. This document describes the range of algorithms that may apply to these tasks. Please note that the tasks may not be arranged from easy to difficult. Contestants are allowed to solve tasks in any order.

Task 1

do not contain float operations.

May contain operations on sequence, such as summation, maximum, minimum, sorting, etc.

Task 2

Algorithm: emulation, sort, iterative

Data Structure: array, object/struct, queue, stack

Task 3

Algorithm: emulation, sort, iterative, recursive, greedy

Data Structure: array, object/struct, string, queue, stack, tree, graph

Task 4

Algorithm: emulation, sort, search, counting methods, greedy

Data Structure: array, object/struct, string, queue, stack, tree, graph, heap

Task 5

Algorithm: emulation, sort, search, counting methods, greedy, dynamic programming, graph theory, number theory

Data Structure: array, object/struct, string, queue, stack, tree, graph, heap, BST/segmentation tree

Task 6 to Task 8

Algorithm: emulation, sort, search, counting methods, greedy, dynamic programming, graph theory, number theory, game theory, probability theory, computational geometry, string algorithms

Data Structure: array, object/struct, string, queue, stack, tree, graph, heap, BST/segmentation tree, complex data structures, nested data structures.

Competition Environment

The competition includes one competition day. Contestants will be given 8 tasks to complete in 5 hours. Each contestant solves theirtasks individually.

Candidates must bring their own laptop, and can carry the necessary personal items into the examination room,including: clothing, jewelry, English dictionaries, small mascots. Other items are not allowed, especially: any electronic equipment (e.g., keyboards, mice, calculators, tablets), any books, manuals, written or printed materials, any data storage medium (e.g., CD-ROMs, USB drives, flash cards, micro-drives), any communication devices (e.g., mobile phones, radios of any sort), watches.

Contestant should sit in the assigned seat and should not leave the competition area during the competition. A contestant should get the permission from invigilators before going to the bathroom.

Any communication between contestants is strictly prohibited during the competition.

A clarification request form will be given to each contestant during the competition. Contestants are not allowed to ask questions about tasks to invigilators during the competition, any questions about tasks should be submitted by filling clarification request form. Contestants should phrase their questions so that the questions can be answered by YES/NO. If required, delegation leaders may translate their contestants’ questions before the question is answered by Competition Committee.

The contestant should solve tasks using one of the following language: C, C++, Java.

The versions and compile command of the compilers in judging system are:

C: gcc (tdm64-1) 4.9.2, gcc -O2 code.cpp -o code

C++: g++ (tdm64-1) 4.9.2, g++ -O2 code.cpp -o code

Java: javac 1.8.0_60, javac Main.java

The following IDEs are installed in competition computers:

DEV-CPP 5.11

Code::Blocks

Eclipse Helios for JavaSE

Tasks

All tasks will be described in English.

Each task contains a problem which can be solved using computer algorithms. In each task, input data is given by standard input and the answer should be written to standard output.

There will be separate sessions in each task to describe input and output format. The input format is guaranteed to be satisfied. Contestant read data as described in the input format. It is recommended that contestant do NOT check input data for input format, as this may take some valuable competition time but gain no score.

Contestant should write output follow the output format, otherwise the output will be judged as wrong (even you found the correct answer).

In each task, any variable in the input will be given a range unless it is derivable from other variables. Beside the final range, a task may contain variable ranges for partition score ranges, which means that if contestant do not solve the final range (full mark), it can gain a partition of score.

The ranges may beyond some common sense. In such a case contestant should follow the range described by the task. For example, a problem may be defined in a period of 1000000 days. In common sense a people would not live such a long time. But as a good programmer, you should be able to solve problem of such a long period.

Each task will specify explicitly time and memory limit. The submitted program should execute within time and memory limit. If a program executes longer that time limit, it will be terminated and marked as Time-Limit-Exceeded. If a program contains multiple threads, the executing time is evaluated as sum executing time of each thread. If a program requires more memory than limit, it will also be terminated. Memory is evaluated as all memory required by a program, including memory of code space, heap, stack, etc.

Submission

Only submissions during competition time are accepted. Any submission after contest time will be denied.

The answers should be submitted via web client (this website). Other submissions (such as emails, USB disks) are INVALID for judging.

Contestants are allowed to review submitted answers and resubmit an answer at any time during the contest, only the last submission is saved and judged for each task. Judge result will not present to contestants, contestant should debug their programs without feedbacks.

For each task, a unified program file should be provided as an answer. The content of the program file should be copied and pasted to the submission area of this website.

C/C++ Programs should only include standard header files, such as <stdio.h>, <cstdio>, <stdlib.h>, <cstdlib>, <iostream>, <map>, <set>, etc. Standard Template Library (STL) can be included in programs. Answers should NOT include any user defined header files, such as <stdafx.h>.

Java programs should only import standard packages, such as java.util.Scanner, java.util.Date, java.util.HashMap, java.util.TreeSet, java.math.BigInteger, etc.

Third party libs are not allowed to use in programs.

Programs should only contain calculate modules, do NOT include any other components such as graphics, system API, system interrupt. Any interaction to system interface should be called via standard libraries such as stdio.h/cstdio.

For C/C++ Programs, the return value of main() should always be 0 otherwise the program is considered to be runtime error when executed.

For Java Programs, package should NOT be used, which means that the program should in default package.

Included files should be specified explicitly in the program and submitted along with the rest of program (#include <xxx> or import xxx). It is not recognized for judging if you only specify included files in project configuration, and the program may be judged as compile-error.

Please choose the correct compile language of your program. Do not choose C as compile language if you are writing a C++ program. C++ may be the language if you cannot distinguish C or C++.

Judging

Programs will be judged using a set of test-cases. Each test-case is attached with some score. Your program will be compiled and executed taking all test-cases as input independently.

If the output of your program is compatible with the correct answer of a test-case, you get the score attached to this test-case.

Test-cases for judging are usually NOT the same as sample input and output provided in task descriptions, so please test your program carefully with various cases before submit it.

Programs should strictly follow the directions of output format to write outputs, including where to write a white space or a newline. Any output that is incompatible with output format is judge as wrong answer. Please note that an output with any extra information is considered incompatible, so do NOT leave any extra output, such as debug info, in the program.

Login

Please enter the host IP address into address bar of your web browser. A login interface will be displayed, enter your admission number and ID number to login.

Language

If you have opened a web page with Chinese characters, click English on right top of the page to set language to English.

Read Contest Notice

When login into the system, a notice will be presented to you, it tells you some important rules related to scoring. Please read the notice carefully. If your submissions violate the rules, they may be judged as WRONG.

You can only read the notice before competition start.

Download Tasks

You can download tasks at any time after the competition start. Click the task download button when it lights up. An encrypted file will be downloaded to your computer. A password will be provided to you to decrypt the file. All tasks are described in the task file.

Submit Your Answer

Please submit your answer as soon as you finished a task via the system. Click the Answer button to enter the submission page. All tasks will be listed in this page, select the task you solved and submit you answer.

For a programming task, please choose the correct compile language of your program. Do not choose C as compile language if you are writing a C++ program. C++ may be the language if you can not distinguish C from C++.

It is suggested that you write your own program in a third party IDE such as Dev-CPP, Code::Blocks or Eclipse. Directly write programs in our system may take risk of losing data when the network connection is not stable.

You are allowed to review submitted answers and resubmit an answer at any time during the contest, only the last submission is saved and judged for each task.

Finish Competition

When the contest is over, just close the web browser. Your submission will be judged by the system automatically.