Профил
Loading...
+ Нов въпрос
zisov4eto avatar zisov4eto 19 Точки

[Homework] Joro The Football Player. И как работи judge системата?

Здравейте колеги, проблема ми е по скоро с judge системата.

Моето решение на задачата е: http://pastebin.com/z60exCD1

И е абсолютно грешно, 0 точки, според judge.

 

Следното решение е авторското: http://pastebin.com/kKKJEqJp

 

Въпроса ми е защо моята задача не минава и метър при положение, че съм я направил, така че да не може да счупи никъде. При грешно въвеждане на данни конзолата ще ви изкара "Invalid entry!".

Докато в авторската можем да въведем стойности извън обхвата за задачата и пак ще изкара число като отговор.

 

Разяснети ми как работи judge системата.

Благодаря.

 

 

RoYaL avatar RoYaL SoftUni Team Trainer 6845 Точки

Джъдж системата работи така: Дава един вход и очаква един изход. Проверява изхода с diffchecker. Твоята задача има прекалено много украшения, които на диффчекера няма да минат. Ако задачата очаква изход "5" а ти изпишеш "The output is 5", то следователно 5 != The output is 5, съответно 0 точки.

2
zisov4eto avatar zisov4eto 19 Точки

Но на потребителско ниво няма ли да е доста по разбираемо задачата да се напише по моя начин?

Пък и другото което, задачата си има изисквания:

Constraints

  • The numbers p is in range [0...300] and h is in range [0…52].
  • Allowed working time for your program: 0.25 seconds.
  • Allowed memory: 16 MB

В авторската задача как са спазени ренджовете 0 - 300 и 0 - 52?

-1
RoYaL avatar RoYaL SoftUni Team Trainer 6845 Точки

В условието пише, че няма да получиш във входа грешни данни.

Твоят начин на решаване може да е по разбираме за потребители, но джъдж не е потребител ;-)

1
t.316 avatar t.316 137 Точки

Здравей, колега.

Системата проверява, какво прочита и какво принтира решението ти. В условието ти се казва кое да прочетеш първо, второ и т.н. След това принтираш само това, което ти е казано. Ако има нещто, което е различно системата няма да го приеме за верен отговор. Това е така, защото на системата и е казано, че верният отговор е примерно 3 и ако програмата ти принтира n = 3 системата го смята за различен от верния отговор.

Тук не е важно, как изглежда за потребителя. В случай пишем решенията за judge системата.

The input data will always be valid and in the format described. There is no need to check it explicitly.

Имай и това в предвид. Няма нужда от тестове, ако ти пише това. Входните дани винаги ще са в опоменатия  range ако пише това. Посочените range са за да се ориентираш, какав тип данни да ползваш. В случая int ти е предостатъчен, но може и да не е така. Може range 0 - 3 000 000 000 примерно и да го направиш с uint или long.

4
20/07/2015 12:38:31
zisov4eto avatar zisov4eto 19 Точки

Разбрах, благодаря. Аз констроирах задачата сякаш я правя за потребител.

На кратко не правиш нищо, което не се иска от теб, а следваш упътването в задачата.

Благодаря, бяхте ми полезни. :)

1