Loading...

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

l000p avatar l000p 13 Точки

Most Frequent Number C++ Fundamentals

Здравейте, тази задача доста ме "озори", но най-после открих решение. 
https://pastebin.com/X0nnFh54-Решение


https://judge.softuni.bg/Contests/Compete/Index/1349#3-Judge


https://softuni.bg/trainings/resources/officedocument/42363/homework-problem-descriptions-c-plus-plus-fundamentals-september-2019/2402- Условие, намира се на 4-та позиция.

Пиша темата, за да открия по-елегантен или рационален начин за решение. Това което най-много ме затормозява е как щях да я реша ако числата не бяха от 0 до 9? По моето решение с още някой друг ред може да се случи, но няма ли да изконсумира прекалено много ресурс от машината ??


Това което искам да видя е най-икономичното решение от гледна точка на обработка, което имплементира само познатите ни за сега структори от данни (array & vector).


Благодаря за вниманието. :) 

 

 

1
C++ Fundamentals 16/09/2019 00:04:57
RadostinStoychev avatar RadostinStoychev 128 Точки

Здравейте колеги, опитах се да я реша по-универсално, за да работи за всякакви числа от тип int, използвах вложени цикли, вектор и сортировка на вектора, но 2рия тест в judge гърми. Опитах най-различни входове и всичко изглежда нормално. Ето задачката: https://pastebin.com/YYpzcsre. Някаква идея защо гърми? Благодаря :)

1
kolioi avatar kolioi 641 Точки

Програмата ти не работи правилно, ако всичките числа са различни, например

3
1 2 3

 

1
RadostinStoychev avatar RadostinStoychev 128 Точки

Ooo да, трябва да принтна и 3ката, благодаря ти много kolioi

0
RadostinStoychev avatar RadostinStoychev 128 Точки

Сложил съм arr_length - 1, а е трябвало да е просто arr_length на единия цикъл. Благодаря още веднъж. Ето и решението ако на някой му е полезно: https://pastebin.com/1H0vj2Yc . Вече минава 100/100 в judge.

0
spasimira25 avatar spasimira25 25 Точки

Радо, трябва малко по-малко да почнем да се отучаваме (и аз включително :) :) :) ) от декларация+инициализация от типа "int arr[arr_length] = {0};" Проблема е, че това е по стандарт на C, а не на C++ :) :) Може някой компилатор нейде да изреве. Виждал съм код, който изключва и синхронизация между стандартния C I/O и станартния C++ I/O. Целтата е - скорост. Сигурно  в нечий код може да  има "изключена" друга функционалност идваща от C99", където са упоменати тези VLA масиви. При C++ изискването е, когато имаме масив с размер променлива е - да използваме vector. Но ти си го използвал де. 
Та може ето така да изглежда. vector <int> arr(arr_length), и може да си го обхождаш като масив. Демек, надолу нищо не пипаш :) :) :) И на мен ще ми трябва още малко да посвикна. Както и с функциите. Май тамън ще ги научим и ще трябва да си сменяме мирогледа :) :) :)

1
RadostinStoychev avatar RadostinStoychev 128 Точки

Разбрах за какво говориш, прав си. На лекцията от 50:15 се говори точно за това. Просто ми се стори, че е по-удачно да се използва масив, защото от конзолата приемаме точната му дължина. После порових малко в нета, за масива пише, че използва по-малко памет, докато при вектора е обратно заради преоразмеряването. Относно скоростта, на масива е малко по-бърза, но пък както ти каза може да се hit-нат повече проблеми. Благодаря за забележката, браво че го хванах по навреме. Ето 2 линкчета, в които се говори за този проблем:

LINK

LINK

Благодаря още веднъж :)

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