Loading...
Jivko1236 avatar Jivko1236 2 Точки

Training lab problem

Колеги, спрещам трудност с тази задача. Резултатът, които трябва да получа е правилен, но judge системата не го приема следователно бъркам някъде.

Ще може ли да ми помогнете?

Задачата е:

Учебна зала има правоъгълен размер l на w метра, без колони във вътрешността си. Залата е разделена на две части – лява и дясна, с коридор - приблизително по средата. В лявата и в дясната част има редици с бюра. В задната част на залата има голяма входна врата. В предната част на залата има катедра с подиум за преподавателя. Едно работно място заема 70 на 120 cm (маса с размер 70 на 40 cm + място за стол и преминаване с размер 70 на 80 cm). Коридорът е широк поне 100 cm. Изчислено е, че заради входната врата(която е с отвор 160 cm) се губи точно 1 работно място, а заради катедрата (която е с размер 160 на 120 cm) се губят точно 2 работни места. Напишете програма, която въвежда размери на учебната зала и изчислява броя работни места в нея при описаното разположение.

Ограничения: 3 ≤ w ≤ l ≤ 100.

Входни данни :

l = 8,4 / w = 5,2 за първият пример

l = 15 / w = 8,9 за вторията пример

Изходни данни

пример едно : 39

пример две : 129

Решението ми е:

l = float(input())*100
w = float(input())*100

place_length = 120
place_width = 70

rows = l / place_length
rows = round(rows)
rows_2 = (w - 100) / place_width
rows_2 = round(rows_2)

seats = rows * rows_2 - 3

print("Работни места ", seats)

Използвам round(), за да мога да изключа разликата, която получавам във вторията пример, защото 1500 / 120 = 12,5, а за да имам 12 реда ми са нужни 1440 см. 

Благодаря предварително.

 

Тагове:
0
Programming Basics 27/10/2019 19:16:02
kkaraivanov avatar kkaraivanov 486 Точки

Ето един код на C# за да оправиш грешките:

const double loseWorkPosition = 3;

double l = double.Parse(Console.ReadLine());
double w = double.Parse(Console.ReadLine());

double heigh = l * 100;
double width = w * 100;
double coridor = 100;
double workPositionWidth = 70;
double workPositionHeigh = 120;
double rest = 0.0;

//We find bureaus count at one row
width -= coridor;
rest = width % workPositionWidth;
width -= rest;
double bureauCount = width / workPositionWidth;

//We find count at rows
rest = heigh % workPositionHeigh;
heigh -= rest;
double rowCount = heigh / workPositionHeigh;

//We find count work position
double workPosition = (bureauCount * rowCount) - loseWorkPosition;

Console.WriteLine(workPosition);

Мисля че ако го адаптираш, Judge ще го приеме. Уморено ми е да го тествам, но пробвай

 

0
27/10/2019 19:22:38
Jivko1236 avatar Jivko1236 2 Точки

Намерих решението. Просто системата не приема този тип закръгляне, а трябва да е :

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