Loading...
Radevatns avatar Radevatns 34 Точки

Blur Filtrer - Sample Exam - April 2016

Здравейте, 

От изпита Sample Exam - April 15,04,2016 задача 5 с име 05. Blur Filter. Условието може да видите тук:   https://judge.softuni.bg/Contests/Practice/Index/182#4

Добутах го до положението, че уж работи, дава в judge 60%, като останалите 40% са последните тестове. Пробвах какви ли не тестове и в граничните стойности(по ръбчетата) и уж все си работи. В джъджа няма качено какви са входните и изходните данни за да мога да се ориентирам къде бъркам.

Ще бъда благодарен ако някой, който може да ми прегледа кода и да даде идея къде съм на оплескал нещата.http://pastebin.com/y38nza9f

Тагове:
0
Programming Basics
Thenis avatar Thenis 219 Точки
Best Answer

int-та ти превъртя на матрицата, трябва да използваш long.

Ето така трябва да ти е

        var matrix = new long[rows, cols];

EDIT: Пояснение.

В "Constraints" са ти дадени blur amount и pixel weight. Те трябва да приемат числа от -2,147,483,648...2,147,483,647 което е max value на int-та и ти като събереш max value-то дори с малко ще ти превърти int-та

0
19/04/2016 23:20:47
Radevatns avatar Radevatns 34 Точки

Благодаря,

Има ли някакъв по интелигентен начин по който откри проблема или просто пробва с числа от порядъка на 2 000 000 000++ и така го хвана. 

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

0
Thenis avatar Thenis 219 Точки

Току що направих един edit на OP с пояснение. Трябва много да се внимава с Constrains

0
19/04/2016 23:24:29
Thenis avatar Thenis 219 Точки

Иначе за по-интелигентен начин освен с тестове не се сещам. Аз просто предположих че това може да е проблема като видях условието и се оказах прав.

0
NikolayRogchev avatar NikolayRogchev 12 Точки

По-интелигентен начин е да сложиш целия код в checked { }, така ако някой тип данни превърти, ще ти хвърли exception и ще гръмне в джъджа. Ако продължава да ти дава грешен отговор, значи проблема не е там.

ето инфо: http://stackoverflow.com/questions/5217877/c-sharp-checked-block

1
20/04/2016 17:18:37
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.