Loading...

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

arnold avatar arnold 50 Точки

Problem 2. The Lift

Тази задача вече определено ме умори, какво ли не сменям, не мърда до 100. Стигнах макса до 88/100, естествено с всичко входове работи, с мои измислени какви ли не пробвам, всичко точно, но само за джъдж не е точно :)

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

https://pastebin.com/N1jhh7P5  88/100

 

https://judge.softuni.bg/Contests/Practice/Index/2517#1

 

Programming Fundamentals Mid Exam Retake 12 August 2020

Problem 2. The Lift

Write a program that finds a place for the tourist on a lift. 

Every wagon should have a maximum of 4 people on it. If a wagon is full you should direct the people to the next one with space available.

Input

  • On the first line you, will receive how many people are waiting to get on the lift
  • On the second line, you will you will receive the current state of the lift separated by " ".

Output

When there is no more available space left on the lift, or there are no more people in the queue, you should print on the console the final state of the lift's wagons separated by " " and one of the following messages:

  • If there are no more people and the lift have empty spots you should print:

"The lift has empty spots!

{wagons separated by ' '}"

  • If there are still people on the queue and no more available space, you should print:

"There isn't enough space! {people} people in a queue!

{wagons separated by ' '}"

  • If the lift is full and there are no more people in the queue, you should print only the wagons separated by " "

Examples

Input

Output

15

0 0 0 0

The lift has empty spots!

4 4 4 3

Comment

First state - 4 0 0 0 -> 11 people left

Second state – 4 4 0 0 -> 7 people left

Third state – 4 4 4 0 -> 3 people left

Input

Output

20

0 2 0

There isn't enough space! 10 people in a queue!

4 4 4

Comment

First state - 4 2 0  -> 16 people left

Second state – 4 4 0  -> 14 people left

Third state – 4 4 4 -> 10 people left, but there’re no more waggons.

Тагове:
0
Fundamentals Module 07/07/2021 20:47:22
svephoto avatar svephoto 1191 Точки

Здравей, arnold,

 

Ако искаш, виж този вариант за решение: https://pastebin.com/2MAu1QEH, минава със 100/100. Дано да ти е от полза.

0
arnold avatar arnold 50 Точки

Благодаря за отговора, иначе като я разцъках пак си разбрах грешката. Кой да прочете, че хората са написали и трети принт:

  • If the lift is full and there are no more people in the queue, you should print only the wagons separated by " "

 

laugh

 

Ето го и моето поправено вече с 100/100, накрая просто оправих проверките и добавих третата по условието:

https://pastebin.com/muKszaWG

 

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

0
08/07/2021 12:44:38
svephoto avatar svephoto 1191 Точки

Браво за пълния успех с твоето решение и разгадаването му! yes laugh

Една идея от мен: за случая, който си видял, че също се иска по условие и в който трябва да принтираш само вагоните, няма нужда изрично да проверяваш else if (tourists <= 0 && capacity == tourists), а можеш да го оставиш просто else, защото ако не си влязъл в нито една от предишните две проверки, то не ти остава друго освен третият случай.

А за още по-изчистен от повтарящи се елементи и изрази код, можеш направо да го напишеш така накрая:

            if (tourists == 0 && capacity > 0)
            {
                Console.WriteLine("The lift has empty spots!");
            }
            else if (tourists > 0 && capacity <= 0)
            {
                Console.WriteLine($"There isn't enough space! {tourists} people in a queue!");
            }

            Console.WriteLine(String.Join(" ", lift));

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

Успех и занапред, и конкретно на изпита!

0
08/07/2021 16:02:09
arnold avatar arnold 50 Точки

Ясно, благодаря!

1
svephoto avatar svephoto 1191 Точки

Моля. yes

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