Професионална програма
Loading...
+ Нов въпрос
nstanevski avatar nstanevski 37 Точки

[Подготовка за изпита в Judge] - Problem07 Vladko's notebook

Колеги, опитах да реша задача 7 - Vladko's notebook - от подготовката за изпита. Така и не успявам да достигна 100-те точки - първият тест не минава, всички други са ОК. Ето моето решение, ще се радвам, ако някой от успелите да я решат ме посъветва какво да оправя.

Благодаря!

Тагове:
0
C# Advanced
Filkolev avatar Filkolev 4482 Точки

Имаш печатна грешка на един от изходите - по-конкретно, при липса на резултати. Изпуснал си точката накрая, иначе програмата ти работи напълно коректно.

2
nstanevski avatar nstanevski 37 Точки

Благодаря Филип, убих се да я търся тази грешка. И понеже четох условието доста задълбочено, нека и аз да посоча две малки неточности:

1. Данни за даден противник не се отпчатват при липса на име И възраст - така е според примера (виж Color = Blue), а в условието е ИЛИ: ...has no information about the name OR the age of the player...

2. Отново в примера на VladoKaramfilov е зададена възраст 99, а в ограниченията е казано: The value of age will be an integer in the range [0 … 50]. Мисля, че и тук е добре да се промени ограничението.

0
Filkolev avatar Filkolev 4482 Точки

По точка 1 - идеята е, че за да принтираш даден противник трябва да имаш данните и за име, и за възраст. Т.е., ако го обърнем, твърдението казва "не принтирай данните ако няма име или възраст". Коректно е условието и казва точно това, което ти казваш.

По втората точка е недоглеждане, но не би довело до грешка, органичението е без особено значение. Възрастта е от 0 до 99, няма нужда да се проверява никъде, а и няма тип данни, с който да не сработи. Грешка, която не води до последствия; ще гледам да я оправя все пак.

0
Filkolev avatar Filkolev 4482 Точки

Да отбележа и друг момент - писах в условието да се ползва dynamic с идеята, че на лекцията за функционално програмиране ще покажем този тип. Решихме впоследствие да го премахнем от презентацията и да го оставим за курса по ООП.

dynamic е тип, който трябва да се избягва, по-особен е за ползване и крие опасности. Опитвайте да решите задачата по друг начин, има варианти :)

0
djc_bg2015 avatar djc_bg2015 923 Точки

Здравей, днес попаднах на тази задача. След около час и нещо борба оставам с чувството , че ми липсват някакви знания, които биха ми помогнали за по - кратко и ясно решение.

Ето го въпросното решение: https://gist.github.com/vdonchev/0f0b753c5ceebe74e604

Тъй, като чакам да започна курса по адвансед C# през септември, в момента гледам стари видеа и съм до функционалното програмиране. Би ли ми подсказал, какъв е правилният подход за решаването на задачата със знанията които се предполага че имам до тук, защото кода който написах ми "звучи" зле?

Благодаря за отделеното време!

0
01/08/2015 20:04:51
Filkolev avatar Filkolev 4482 Точки

Задачата е по-кофти, защото е мислена за JavaScript, където в един обект може да се пъхат всякакви данни. Единият ватиант на решение е да се ползва клас (което не се очаква да се знае след този курс), другото е с малко хакове, например със списък да се пазят числа и такива неща. Подобни задачи няма да се дават по изпити по  Advanced C#, но е хубаво задачите за подготовка да са по-трудни, затова е и добавена в състезанието в Judge за подготовка.

2
iliqnvidenov avatar iliqnvidenov 16 Точки

Здравейте, аз я пробвах със "структура"  - слагам я в кавички, защото не знам дали точно по този начин се прави, както и да е, докарах задачата до 50 точки и ще съм благодарен, ако някой ми покаже къде ми е грешката, и дали въобще може да се стигне с това решение до 100 точки. Благодаря предварително :)

http://pastebin.com/S47WMFWL

0
24/05/2015 00:29:13
Filkolev avatar Filkolev 4482 Точки

Имаш два проблема от недоглеждане може би, или просто заради обема на задачата са ти убягнали тези неща.

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

2. Не сортираш правилно опонентите. В условието е указано, че трябва да се ползва друг вид сортиране.

Мисля, че и трите теста, които не ти минават, ще се оправят ако коригираш тези пропуски.

1
iliqnvidenov avatar iliqnvidenov 16 Точки

Благодаря за бързия отговор!

0
iliqnvidenov avatar iliqnvidenov 16 Точки

Здрасти отново, "list with the opponents (in alphabetical order) " това би трябвало да значи, че реда на опонентите трябва да е в азбучен ред, но сега отворих един от тестовете, който не ми дава верен отговор и опонентите са в този ред:
"Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Ico","Vladko","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya","mariya"
Владко не трябва ли да бъде преди Ицо и Мария? Става въпрос за тест 4.

0