Loading...
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Problem 01 - Cake Tycoon From Programming Basics Exam - 17 January 2016

Условие и линк към Judge: https://judge.softuni.bg/Contests/Practice/Index/149#0
Решение(75%): http://pastebin.com/Tbt2sCLj

Опитвам се да доведа задачата до 100%. Вероятно проблемът е в променливата cakePrice, защото дава грешка при по-големи входни стойности, но не се сещам какво да променя.

0
Programming Basics
Lusien.GG avatar Lusien.GG 66 Точки
Best Answer

Типа данни провери, замени int с long. Даже за да разбереш, защо е така прегледай тук типовете данни и виж по условие какви стойности ще ти се подават.

2
19/06/2016 02:29:42
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Прав си. Един бърз find and replace на всички int с long решава проблема. :)

0
Lusien.GG avatar Lusien.GG 66 Точки

Попринцип решава проблема, но реално ти използваш повече памет от необходимото:

  • The number n will be a valid integer in the range [1 … 18 446 744 073 709 551 615] - тип данни: Int64(ulong), памет: 8 bytes
  • The number c will be a floating-point numbers in the range [0 … 7.9 x 1028] - тип данни: decimal, памет: 16 bytes
  • The numbers f, t and p will be valid integers in the range [0 ... 4 294 967 295] -  тип данни: uint, памет: 4 bytes

Някой от променливите не е нужно да ги правиш long, по условие uint ти върши работа за някои променливи, а заема на половината памет.
В тези задачи това не е от значение. Представи си обаче, ако имаш милион променливи. Тогава разликата, ще са 4 000 000 bytes, което е около 3,8 MB, което не е малко памет.

1
19/06/2016 02:50:27
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Allowed memory: 16 MB

Прав си, но има време да мисля за оптимизация на паметта. Засега гледам да реша задачите. :)

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