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

[Exam] Programming Basics - 29 March 2015 Evening - Решения, впечатления

Здравейте, надявам се да е бил успешен изпита за всички!

Тъй като не са качили още авторските решения, качвам моите решения на задачите за 500 точки (P.S. не съм ги оптимизирал още), ако някой иска да види възможни решения.

01. Currency Check: http://pastebin.com/K48GGAiq

02. Dream Item: http://pastebin.com/EznMw4Hs

03. Magic Wand: http://pastebin.com/wcEATFti

04. Array Matcher: http://pastebin.com/JmedRRMS

05. Knight Path: http://pastebin.com/etVXzGaW

 

Поздрави и успех на всички! 

4
Programming Basics 31/03/2015 23:52:03
RoYaL avatar RoYaL Trainer 6847 Точки

Реших да се пробвам да пореша задачките от изпита, че имах известно време за прекарване в универсиетта :) Гледам, че към 5та си подходил наистина като с матрица. Де факто нямаше нужда, масив от 8 нули би бил достатъчен.

Всяка нула си има побитова репрезентация и си става матрица :)

Как подходих аз - по начинът по-горе, а всяка команда просто сменя колко надолу слизаш или съответно нагоре се качваш, и колко надясно или наляво се местиш. Например down left е две долу и едно наляво. След като се преместиш, просто инвъртваш бита на тази позиция, ако не си извън рамките (8x8).

Куриозите, които се получиха при моето решение:

1. Тъй като 1во съм изместил позицията и линията на която е коня, чак след това проверявам дали не съм извън рамките. И ако съм, мога да отида на следващата итерация, но вече ще съм се преместил, за това се наложи да "връщам" коня, ако е излязал извън двора и ми потрябваха две променливи "previousLine" и "previousPos" :D

2. Пропуснал съм една от командите - мисля че right down. При което изкарах 87 точки. Обаче не се усетих, че съм пропуснал командата и реших, че инпута е някаква грешна команда и реших просто да го скипвам с continue. Оказа се, че и така вади 100 точки.

Решението: http://pastebin.com/G8iCFpci

 

0
29/03/2015 23:58:51
Filkolev avatar Filkolev 4482 Точки

Това са моите решения на задачите:

01. Currency Check

02. Dream Item

03. Magic Wand

04. Array Matcher

05. Knight Path

На 4-та методите са написани функционално, но на практика представляват по един foreach, който цикли единия стринг и проверява дали текущия символ го има или не в другия стринг. Ползвам един метод за exclude-ванията, като го викам два пъти и просто му подавам двата стринга (масива) в различен ред.

1
a_tifonoff avatar a_tifonoff 26 Точки

Мисля, че на Knight Path с едномерен масив писарията беше по малко, а може би това се отнася и за Array Matcher. За останалите задачи твоите решения са значително по-оптимизирани. Ето ги моите 500 точки. Загубих един час да търся 10точки  във втора задача.

1. http://pastebin.com/f1RYshUr

2. http://pastebin.com/jZf4g8Lb

3. http://pastebin.com/4RN26CMp

4. http://pastebin.com/Z13BwnWt

5. http://pastebin.com/1aHsWbkX

 

0
zdravko7 avatar zdravko7 63 Точки

И аз изкарах 90/100 на 2-рата първоначално и 1 час я гледах и debug-вах. Накрая намерих, че не съм разгледал случая, когато съвпадат заплатата и цената на item-а :D

0
30/03/2015 14:08:27
zdravko7 avatar zdravko7 63 Точки

Мерси за хубавите думи, независимо, че си изтри коментара доста бързо, явно си си променил мнението :)

1
a1mbiser avatar a1mbiser 63 Точки

Не съм го трил, по-скоро имах някакъв проблем с нета и бях успял да си скрия мнението но не ми излизаше заредакция...  Добрите думи си остават едно голямо БРАВО  че направи задачите толкова бързо на мен лично ми даде надежда, че и аз ще мога да ги преборя :)  да се надяваме че ще продължим със същото темпо. Успех и занапред на всички в следващото ниво!

0
09/07/2015 15:57:02
enevlogiev avatar enevlogiev 1168 Точки

Евала за резултатите, момчета/момичета. Аз лично бях изненадан от някои неочаквани 'капани' - примерно 50% от хората изгубиха по 30-40 минути време, докато разберат защо ей тоя сплит - ('\') - не работи. Другият капан - виждате, че някой вход ще е floating-point number и веднага решавате, че е float. Това наистина са ядове, които изобщо не трябва да си причинявате : )

1
zdravko7 avatar zdravko7 63 Точки

За floating point-a подсказката беше, че в скобите беше написан range-a на променливата: (-7.9 x 1028 to 7.9 x 1028) / (100 to 28), което е range-a на Decimal, който е 128 битов. Float-a е само 32 битов (-3.4 × 1038to +3.4 × 1038).

0
biser.stoev avatar biser.stoev 57 Точки

Вчера на изпита имах малък проблем с 4-та задача. За 30-тина минути я направих и ми даваше верни отоговори на примерите, но в judge не ми даде над 50 точки. 2 часа въртях и опитвах и все същото. Ето кода, който събмитнах последен http://pastebin.com/V03bi84A Някой може ли да ми каже къде ми е грешката? 

0
30/03/2015 13:41:41
Filkolev avatar Filkolev 4482 Точки

Гледахме по време на изпита решението ти. Според мен грешката идва от това, че ползваш стрингове, а не символи.

Нещо със сортирането не работи правилно. Стринговете се сортират по лексикографска подредба, което явно е по-различно от сортиране по ASCII код. Не съм проверявал дали е така. Пробвай да пълниш списък от символи и ползвай ToString() само ако се налага някъде по проверките. След това като сортираш символите те се сортират правилно, понеже по природа са числа.

1
biser.stoev avatar biser.stoev 57 Точки

Явно това е бил проблемът.  Единственото което направих е да направя нов char list и да вмъкна буквите, конвертирани от  стрингове в символи, след което просто ги сортирах и ги напечатах и ми даде 100/100 http://pastebin.com/zsn7jKs8 (жалко, че не го направих на изпита... работа за 1 минута laughing )

Имам още един проблем: На пета задача ми дава 75/100 точки със този код http://pastebin.com/BYsw8C4D , но не мога да си намеря грешката. Някакви съвети?

0
Filkolev avatar Filkolev 4482 Точки

При инициализирането на масива елементите в него получават стойност по подразбиране, не е нужно да го пълниш с нули.

Иначе на ред 93 имаш някаква проверка, която не знам за какво е сложена. Ти трябва да флипнеш бита при всички положения, а не само когато е 0, т.е. ти сетваш битовете от 0 на 1, но никога не правиш обратното. 

0
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Условията на задачите кога ще можем да ги видим?

0
redstorml avatar redstorml 4 Точки

Дамм..има ли някъде условията?Защо не може да се влезе в  judge като на изпита?Tnx

0
01/04/2015 20:38:14
SimeonStoykov avatar SimeonStoykov 114 Точки

Условията, решенията и тестовете вече са достъпни тук (най-долу).

2
RFilipov avatar RFilipov 136 Точки

Здравейте. Успях след 2 часа мислене да реша Knight's Path...

http://pastebin.com/uEzG1brU

Този код ми дава 100 точки, но не работи коректно заради break; в първата if-else конструкция.

Не е от най-красивите решения, но все пак...

Моля обърнете внимание само на една от If-else конструкциите, когато проверявам дали числото и бита не излизат от границите на допустимото пробвах да изляза от тази ситуация и с break; и с continue; но и в двата случая цикълът или се прекъсва или програмата спира да работи. Трябваше да се измъквам със зануляване на две временни променливи. Има ли някакъв друг начин? Goto?

0
17/06/2015 20:34:12
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Здравей,

що се отнася до проверка дали излизаме от границите на полето, аз лично съм ползвала tempX и tempY, и само ако след прилагането на командите тези tempX и tempY остават в границите на полето, само тогава казвам

X = tempX;

Y = tempY;

и ги прилагам към матрицата - ето моя вариант.

0
TaTRaTa avatar TaTRaTa 5 Точки

Някои може ли да ми каже защо "judge" ми дава 87точки на задача 1 ? тук 

0
crazy7 avatar crazy7 177 Точки

Мисля чя имаш проблеми в следния казус примерно:

isPriceRL и isPriceDL са равни и същевременно най-малки, няма да изпечаташ нищо.

Или всички цени са равни.

Явно няма такъв тест.

 

Edit: Проблема конкретно при тебе е че когато делиш levFor2copies на 2 вземаш само цялата част защото делиш long на int. Преобразувай  си levFor2copies към decimal и няма да имаш проблеми, например:

decimal isPriceS = (decimal)levFor2copies / 2;

 

1
30/06/2015 18:49:46
TaTRaTa avatar TaTRaTa 5 Точки

Благодаря. 

0
AntonPortenov avatar AntonPortenov 102 Точки

Здравейте,

 

имам проблем с тази задача. Скалъпих я някак, но judge ми вади 50/100.

Прегледах го и не мога да го намеря.

Ще съм благодарен ако някой му хвърли едно око.

Поздрави

 

http://pastebin.com/PBL30r4k

 

П.с. усетих се. Не съм ги сортирал по ASCII .

един "StringComparer.Ordinal" в сорт метода свърши работа :)

100/100

0
09/11/2015 22:18:26
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.