На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 07.02.19 14:45. Заголовок: На примере номера 6; Python.3


Добрый день!
Условие номера 6: Скрытый текст

Актуальное решение, предложенное на языке Python на сайте:

 цитата:
N = int(input())
res = {}
for i in range(N):
fam, name, b1, b2, b3, b4 = input().split()
ball = [int(x) for x in [b1, b2, b3, b4]]
res[fam+" "+name] = sum(ball)
res = sorted(res.items(), key = lambda x: x[1], reverse = True)
best = [x[0] for x in res if x[1] >= res[2][1]]
for x in best:
print(x)


Если ввести в качестве данных:
5
I K 5 4 5 5
I A 5 3 5 5
Y U 5 5 5 5
O P 5 4 5 5
T R 5 2 5 5,
то этот код выдает: I K, Y U, O P ввиду best = [x[0] for x in res if x[1] >= res[2][1]], и это неверно, так как есть два ученика, претендующих на "второе место", и еще один на третье, который и оказывается не учтен.
Если ввести в качестве данных:
5
I K 5 4 5 5
I A 5 3 5 5
Y U 5 5 5 5
I K 5 3 5 5 (измененная строчка)
T R 5 2 5 5,
то этот код выдает: Y U, I K, I A; видимо ввиду res[fam+" "+name] = sum(ball); это также неверно, так как есть два ученика с одинаковыми инициалами (I K), и один из них оказывается неучтен.
Также и с другими аналогичными заданиями (например, с примером 2 к заданиям 27).
Программа, которую написал я на Питоне, похожа на программу на Паскале в примере 2 к заданиям 27 и учитывает два случая выше:

 цитата:
N=int(input())
mb1=0; mb2=0; mb3=0
attenders=[]
for i in range(N):
fam, name, a, b, c, d = input().split()
abcd = [int(x) for x in [a,b,c,d]]
abcd=sum(abcd)
attenders.append([fam+' '+name, abcd])
if abcd==mb1 or abcd==mb2 or abcd==mb3:
None
elif abcd>mb1:
mb3=mb2
mb2=mb1
mb1=abcd
elif abcd>mb2:
mb3 = mb2
mb2 = abcd
elif abcd>mb3:
mb3 = abcd
for j in attenders:
if j[1]>=mb3:
print(j[0])


В связи с этим и вопрос: действительно ли неправильно решение, предложенное в ответе? правильно ли в свою очередь мое решение?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]


Администратор




Сообщение: 1808
ссылка на сообщение  Отправлено: 07.02.19 16:45. Заголовок: mendez пишет: Если ..


mendez пишет:
 цитата:
Если ввести в качестве данных:
5
I K 5 4 5 5
I A 5 3 5 5
Y U 5 5 5 5
O P 5 4 5 5
T R 5 2 5 5,
то этот код выдает: I K, Y U, O P ввиду best = [x[0] for x in res if x[1] >= res[2][1]], и это неверно, так как есть два ученика, претендующих на "второе место", и еще один на третье, который и оказывается не учтен.

Это правильно. В этой задаче требуется выявить трёх лучших, программа их и выводит. Если не согласны - доказывайте.
 цитата:
это также неверно, так как есть два ученика с одинаковыми инициалами (I K), и один из них оказывается неучтен.

Предполагается, что все пары "Фамилия-имя" различны. Иначе невозможно отличить одного ученика от другого (поля "идентификатор", которое могло бы спасти ситуацию, нет).

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 1 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 29
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет