Musala Soft Logo Конкурс по програмиране на Musala Soft и PC Magazine Bulgaria PC Magazine Bulgaria Logo
  Състезателна система
Сезон 2010 - 2011
Сезон 2009 - 2010
Правила
Задача 1
Задача 2
Задача 3
Задача 4
Задача 5
Задача 6
Класиране
Финален кръг
Сезон 2008 - 2009
Сезон 2007 - 2008
Сезон 2006 - 2007
Сезон 2005 - 2006
Сезон 2004 - 2005
Сезон 2003 - 2004
Сезон 2002 - 2003
Сезон 2001 - 2002
Сезон 2000 - 2001

Правила за участие


Форма на Конкурса
Задочно - започвайки от месец октомври 2009, в продължение на 6 броя - 6 кръга, се публикува по една задача на кръг в списание PC Magazine България. Във всеки задочен кръг се определя победител, който получава сертификат от Мусала Софт и награди, осигурени от спонсорите.
Финален - присъствен кръг се провежда през месец май 2010 с 9-те най-добре представили се участници (с най-висок сумарен резултат от задочните кръгове) и следващите 3-ма в класирането, които не са участвали във финален кръг през последните три години.

Участие
Право на участие има всеки желаещ, който не е свързан пряко с Мусала Софт.
Предаването на решения и задаването на въпроси по условието на задачата става чрез online системата след регистрация. Системата можете да намерите тук.
Системата запазва последните десет предадени решения. При изготвяне на класиране за съответния кръг се оценява решението, избрано от участника като официално (по подразбиране това е последното предадено).
Решението на задачата – zip архив, съдържащ:
  • Ако в условието на задачата не е указано друго, един изпълним exe файл (с посоченото в условието име), с който се извършва проверката, а за тези, които пишат на JAVA - jar архив, съдържащ всички необходими class файлове (с посоченото в условието име). Решенията не трябва да изискват библиотеки, които не са част от указаната по-долу среда за тестване.
  • Сорс-код на решението (включително всички файлове, които не са част от стандарта на езика за програмиране), който не се оценява (т.е. не влияе на резултата), но задължително трябва да се изпрати.
  • По желание (не се оценява) - описание на решението и реализирания алгоритъм, което ще бъде публикувано на сайта на Конкурса и евентуално в списанието.
Всеки изпратен архив трябва да е не по-голям от 1 MB. Архив с размер над 1 MB не може да бъде предаден чрез на системата.
По изключение или при проблеми със системата, решения могат да бъдат предавани и по e-mail на адреса на журито - konkurs@musala.com, съдържащ личните данни на участника (включително потребителско име), архив с решението на задачата и причината, поради която решението не е било изпратено чрез системата.
Решения, получени след крайния срок за съответния кръг, няма да бъдат включени в класирането.

Оценка на изпратените решения в задочните кръгове
  • Схема на проверка:
    • Журито подготвя набор от тестове (входни данни) за конкретната задача. На всеки тест, съобразно сложността му, се съпоставят определен брой точки - максималният брой точки, който може да получи всеки състезател, ако решението му премине успешно теста. Броят на тестовете и разпределението на точките между тях не са предварително известни. Знае се само, че за всяка задача сумата от максималните точки на всички тестове е 100.
    • На всеки тест журито предварително съпоставя време (определен брой секунди), за което програмата на всеки участник трябва да завърши теста. Това времево ограничение се определя предварително, но не е задължително да бъде обявено публично. В случай, че програмата надвиши времето за работа, то тестът ще се счете за неуспешен (без значение дали генерираният от програмата резултат е верен или не) и ще му бъдат присъдени 0 точки.
    • Ако при изпълнението на програмата на участник за даден тест се получи грешка по време на изпълнение на програмата (Run-time Error), то тестът ще се счете за неуспешен и ще му бъдат присъдени 0 точки.
    • Ако програмата завърши тест в определеното време и в условието на задачата не е указана друга схема за оценяване, то ще бъдат присъдени или всички точки определени за теста (при верен резултат) или 0 точки (ако резултатът генериран от програмата е грешен - това включва грешно форматиран изходен файл).
  • Обратна връзка:
    • По време на всеки кръг (освен ако изрично не е уточнено) изпратените решения се тестват от системата върху даден набор от примерни тестове (които може да са публично известни) в реални условия, като потребителите получават детайлна информация за работата на предаденото решение. На базата на получените резултати се съставя временно класиране.
  • Наказания:
    • Програмата трябва да извежда единствено указаните в условието изходни данни в съответния изходен файл. Освен това форматът на изходните данни трябва да съвпада с описания в условието на задачата. Не трябва да бъдат извеждани съобщения на екрана, принтера или други изходни устройства.
    • Програмата трябва да чете данни единствено от описания в условието входен файл и от временните файлове, които тя има право да създаде. Тя не трябва да очаква, че данните, които са записани във входния файл, ще бъдат подадени на стандартния вход, например.
    • Програмата не трябва да включва потребителски интерфейс. Тя не трябва да създава прозорци, бутони, статус барове и т.н. Освен това програмата не трябва да изисква потребителска намеса – например да се натисне Enter.
    • Програмата трябва да предоставя еднозначно детерминиран изход, зависещ единствено от входа, който получава (например използване на процесорното време за инициализиране на генератор за случайни величини би нарушило това правило).
    • Програмата трябва да представлява самостоятелен exe/jar файл, чиято работа не зависи от директорийната структура на предадения архив, външни библиотеки и други.
    • При неспазване на някое от изброените условия, резултатът на състезателя ще бъде намален по преценка на журито.
  • Особености по тестването:
    • Всички решения се тестват на един и същи компютър;
    • Компютърът, на който се тестват решенията, има процесор: AMD Athlon XP 2000+ 1.66 GHz;
    • Проверката се извършва под Windows 2003 Server R2 Service Pack 2, с инсталиран .NET Framework 3.5 и Java™ SE Runtime Environment (build 1.6.0_17-b04);
    • Свободната оперативна памет при изпълнението на програмите на участниците ще е поне 1 GB;
    • При работата си, програмите на участниците имат право да използват временни файлове в текущата директория с обща големина до 100 MB.
  • Контестации:
    • След публикуване резултатите на всяка задача, участниците имат право да подават контестации в срок от 3 дни през системата на конкурса.
    • При нужда, журито има право да удължи срока за контестации.
Обявяване на резултатите от задочните кръгове
През един брой на списанието (т.е. в брой X излизат резултатите от задачата публикувана в брой X-2) се публикуват:
  • Идея на решението (алгоритъма) на задачата.
  • Класиране за конкретната задача, както и обявяване на победител на задочния кръг.
  • Общото класиране до момента - на база всички задочни кръгове, които са се провели.
На сайта на Конкурса се публикува всичко по т.1, т.2, т.3, както и:
  • Текста на задачата, като условието на текущата задача се публикува 20 дни преди крайния срок за изпращане на решения.
  • Тестовите примери, с които е извършена проверката; програмите на всички участници, изпратили решения; както и начина на оценка. Целта е проверката и класирането да са максимално открити и прозрачни, и всеки участник да може сам да провери собственото си решение и да се убеди, че е оценен правилно.

Предложения на задачи
Журито приема предложения на задачи. Предложението на задача трябва да включва условие на задачата и описание на идеята за решение на задачата.
Участник в конкурса също може да предложи задача. Ако предложилият задача изпрати решение и то получи един от максималните резултати по точки в кръга, точките се запазват. Ако има участник с повече точки, то предложилият задача ще получи 0 точки за съответния кръг.

Участие във финалния-присъствен кръг
След проверката на всеки задочен кръг, се сумират точките от всички кръгове до момента за всеки участник - така се изготвя текущото общо класиране. След провеждането на всичките шест задочни кръга, общото класиране става крайно. Участниците, заемащи първите 9 места в крайното общо класиране, и следващите 3-ма най-добре представили се и не участвали във финален кръг през последните три години, получават покана за участие във финалния-присъствен кръг.

* Включвайки се в Конкурса, всеки участник приема настоящите правила.

За въпроси можете да ни пишете на адрес: konkurs@musala.com.

Supported by Musala Soft Ltd.

Copyright 2000-2010 by Musala Soft Ltd. All rights reserved.