Задача полиглот возможные ошибки

Каждый из N школьников некоторой школы знает Mᵢ языков. Определите, какие языки знают все школьники и языки, которые знаетхотя бы один из школьников.

Формат ввода

Первая строка входных данных содержит количество школьников N. Далее идет N чисел Mᵢ, после каждого из чисел идет Mᵢ строк, содержащих названия языков, которыезнает i-й школьник. Длина названий языков не превышает 1000 символов, количестворазличных языков не более 1000. 1≤N≤1000, 1≤Mᵢ≤500.

Формат вывода

В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки — список таких языков. Затем — количество языков, которые знает хотя бы один школьник, на следующих строках — список таких языков.

Примеры:

Кликните здесь для просмотра всего текста

Тест 1
Входные данные:
3
3
Russian
English
Japanese
2
Russian
English
1
English

Вывод программы:
1
English
3
Russian
Japanese
English

Решал следующим методом. Но Тестировщик в одном из своих тестов находит неправильный ответ
Подскажите, пожалуйста, что я мог не учесть при написании кода. Какие варианты мог не предусмотреть.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lang = []
union = set()
all = set()
for i in range(int(input())):
    m = int(input())
    a = {input() for j in range(m)}
    all.update(a)
    if len(union) == 0:
        union.update(a)
    else:
        union &= a
print(len(union))
print('n'.join(sorted(union)))
print(len(all))
print('n'.join(sorted(all)))

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

Занятие 10. Множества

Задача «Полиглоты»


Условие

Каждый из некоторого множества школьников некоторой школы знает некоторое количество языков. Нужно определить сколько языков знают все школьники, и сколько языков знает хотя бы один из школьников.

В первой строке задано количество школьников. Для каждого из школьников сперва записано количество языков, которое он знает, а затем — названия языков, по одному в строке.

В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки — список таких языков. Затем — количество языков, которые знает хотя бы один школьник, на следующих строках — список таких языков. Языки нужно выводить в лексикографическом порядке, по одному на строке.


Во всех задачах считывайте входные данные через input() и выводите ответ через print().


Тесты

Входные данные Правильный ответ Что вывела программа Результат
3
3
Russian
English
Japanese
2
Russian
English
1
English
1
English
3
English
Japanese
Russian
5
1
German
1
German
1
German
1
German
1
German
1
German
1
German
4
3
Russian
Spanish
German
3
Russian
German
Spanish
3
Spanish
Russian
German
3
German
Russian
Spanish
3
German
Russian
Spanish
3
German
Russian
Spanish

Skip to content

Задача «Полиглоты»

Условие

Каждый из некоторого множества школьников некоторой школы знает некоторое количество языков. Нужно определить сколько языков знают все школьники, и сколько языков знает хотя бы один из школьников.

В первой строке задано количество школьников. Для каждого из школьников сперва записано количество языков, которое он знает, а затем — названия языков, по одному в строке.

В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки — список таких языков. Затем — количество языков, которые знает хотя бы один школьник, на следующих строках — список таких языков. Языки нужно выводить в лексикографическом порядке, по одному на строке.

Решение задачи от разработчиков на Python:

Еще одно решение задачи на Python:

Смотреть видео — Задача «Полиглоты» решение на Python

Делитесь с друзьями ссылкой на ответ и задавайте вопросы в комментариях! 👇

Related Posts

Посмотреть все комментарии

wpDiscuz

0

Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Задача «Полиглоты»


Условие

Каждый из некоторого множества школьников некоторой школы знает некоторое количество языков. Нужно определить сколько языков знают все школьники, и сколько языков знает хотя бы один из школьников.

В первой строке задано количество школьников. Для каждого из школьников сперва записано количество языков, которое он знает, а затем — названия языков, по одному в строке.

В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки — список таких языков. Затем — количество языков, которые знает хотя бы один школьник, на следующих строках — список таких языков. Языки нужно выводить в лексикографическом порядке, по одному на строке.

Мое решение:

s_all, s_1, s_cur = set(), set(), set()

for i in range(int(input())):

for j in range(int(input())):

lan = input()

s_cur.add(lan)

s_all.add(lan)

s_1 = s_1.intersection(s_cur) if s_1 else s_cur

s_cur = set()

l_all, l_1 = sorted(list(s_all)), sorted(list(s_1))

print(len(l_1))

for w in range(len(l_1)): print(l_1[w])

print(len(l_all))

for k in range(len(l_all)): print(l_all[k])

Решение разрабов:

students = [{input() for j in range(int(input()))} for i in range(int(input()))]

known_by_everyone, known_by_someone = set.intersection(*students), set.union(*students)

print(len(known_by_everyone), *sorted(known_by_everyone), sep=’n’)

print(len(known_by_someone), *sorted(known_by_someone), sep=’n’)

Befunge-98, ><>, Haystack, Minkolang, Alice: 5 languages

151 150 146 bytes

4 bytes saved thanks to @MartinEnder

#"retdatsfoH ynneP">:#,_@>o<'Leonard Leakey Hofstadter'
#>!v"Howard Joel Wolowitz"$O.
| @>"Sheldon Lee Cooper"O
d&O>/"ilaparhtooK nayamaR hsejaR"

All aboard the 2D-language train!

I got the template for this answer from a previous answer of mine from a similar challenge, but I wanted this submission to be composed of only 2D languages. I am planning to add more languages soon.

Befunge-98

Try it online!

#                          Jump over one command
"retdatsfoH ynneP"         Push the characters in this string
>:#,_@                     Print it (basically checks if the top value is not zero, then prints it, otherwise exits the program)

Outputs Penny Hofstadter.

><>

Try it online!

#                         Reflect; the IP moves to the left and wraps around to go to the right edge of the field
'retdatsfo ... ranoeL'    Push the characters in this string
>o<                       And output each character in the stack until there are no more, at which point the program exits with an error

Outputs Leonard Leakey Hofstadter and exits with an error.

Haystack

Try it online!

#                        Ignored
                        Reflect; moves downward
>                        Move right
!                        Ignored
v                        Go down
>                        Go right
Sheldon Lee Cooper"      Push this string
O                        Output all characters in the stack; the program wraps around to the left edge
|                        End program

Outputs Sheldon Lee Cooper.

Minkolang

Try it online!

#                       Doesn't do anything important
                       Reflect; moves downward
>                       Move right
!                       Ignore the next command
"Howard Joel Wolowitz"  Push this
$O                      Output all characters in the stack
.                       End program

I could have put the . and the beginning of the second line so that the IP would encounter that once it wraps around, but since the grid is padded with spaces and Minkolang travels through time when it sees a space (infinite loop in this case), I had to include the . right after the $O.

Outputs Howard Joel Wolowitz.

Alice

Try it online!

Alice was the most fun and the most confusing of these languages.

#                     Skip the next command
                     Mirror; redirect IP north-east
                      The IP gets reflected off the top and start moving south-east instead
!                     This command gets skipped over from the #
>                     Set the horizontal component of the IP to East (changes nothing)
/                     Set the IP's direction to East
"ilaparht ... sejaR"  Push this
                      IP wraps around and comes in from the left edge
d&O                   Output the string (duplicate the output command stack length times)

Now the program goes on a joyride (@MartinEnder showed how this bit works to me) to get to the @ in Row 3, Column 3.

/                     Mirror; redirect IP south-east
                      The IP hits the bottom and reflects north-east

Now the IP moves diagonally up and down as it gets reflected executing the commands along its way.

anJ                   Push 10; negate it into an empty string; and jump to origin (0, 0)
                      After the jump, the IP still moves in a north-easterly (irk) direction
#                     Skip the next command
                      IP gets reflected and start moving south-east
@                     Terminate the program

Of course, the @ could have been placed right after the d&O (replacing the useless >) but that wouldn’t have been fun :)

Outputs Rajesh Ramayan Koothrapali.

Befunge-98, ><>, Haystack, Minkolang, Alice: 5 languages

151 150 146 bytes

4 bytes saved thanks to @MartinEnder

#"retdatsfoH ynneP">:#,_@>o<'Leonard Leakey Hofstadter'
#>!v"Howard Joel Wolowitz"$O.
| @>"Sheldon Lee Cooper"O
d&O>/"ilaparhtooK nayamaR hsejaR"

All aboard the 2D-language train!

I got the template for this answer from a previous answer of mine from a similar challenge, but I wanted this submission to be composed of only 2D languages. I am planning to add more languages soon.

Befunge-98

Try it online!

#                          Jump over one command
"retdatsfoH ynneP"         Push the characters in this string
>:#,_@                     Print it (basically checks if the top value is not zero, then prints it, otherwise exits the program)

Outputs Penny Hofstadter.

><>

Try it online!

#                         Reflect; the IP moves to the left and wraps around to go to the right edge of the field
'retdatsfo ... ranoeL'    Push the characters in this string
>o<                       And output each character in the stack until there are no more, at which point the program exits with an error

Outputs Leonard Leakey Hofstadter and exits with an error.

Haystack

Try it online!

#                        Ignored
                        Reflect; moves downward
>                        Move right
!                        Ignored
v                        Go down
>                        Go right
Sheldon Lee Cooper"      Push this string
O                        Output all characters in the stack; the program wraps around to the left edge
|                        End program

Outputs Sheldon Lee Cooper.

Minkolang

Try it online!

#                       Doesn't do anything important
                       Reflect; moves downward
>                       Move right
!                       Ignore the next command
"Howard Joel Wolowitz"  Push this
$O                      Output all characters in the stack
.                       End program

I could have put the . and the beginning of the second line so that the IP would encounter that once it wraps around, but since the grid is padded with spaces and Minkolang travels through time when it sees a space (infinite loop in this case), I had to include the . right after the $O.

Outputs Howard Joel Wolowitz.

Alice

Try it online!

Alice was the most fun and the most confusing of these languages.

#                     Skip the next command
                     Mirror; redirect IP north-east
                      The IP gets reflected off the top and start moving south-east instead
!                     This command gets skipped over from the #
>                     Set the horizontal component of the IP to East (changes nothing)
/                     Set the IP's direction to East
"ilaparht ... sejaR"  Push this
                      IP wraps around and comes in from the left edge
d&O                   Output the string (duplicate the output command stack length times)

Now the program goes on a joyride (@MartinEnder showed how this bit works to me) to get to the @ in Row 3, Column 3.

/                     Mirror; redirect IP south-east
                      The IP hits the bottom and reflects north-east

Now the IP moves diagonally up and down as it gets reflected executing the commands along its way.

anJ                   Push 10; negate it into an empty string; and jump to origin (0, 0)
                      After the jump, the IP still moves in a north-easterly (irk) direction
#                     Skip the next command
                      IP gets reflected and start moving south-east
@                     Terminate the program

Of course, the @ could have been placed right after the d&O (replacing the useless >) but that wouldn’t have been fun :)

Outputs Rajesh Ramayan Koothrapali.

Permalink

Cannot retrieve contributors at this time


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

# Каждый из N школьников некоторой школы знает Mᵢ языков. Определите, какие языки знают все школьники и языки, которые знаетхотя бы один из школьников.
#
# Формат ввода
#
# Первая строка входных данных содержит количество школьников N. Далее идет N чисел Mᵢ, после каждого из чисел идет Mᵢ строк, содержащих названия языков, которыезнает i-й школьник. Длина названий языков не превышает 1000 символов, количестворазличных языков не более 1000. 1≤N≤1000, 1≤Mᵢ≤500.
#
# Формат вывода
#
# В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки — список таких языков. Затем — количество языков, которые знает хотя бы один школьник, на следующих строках — список таких языков.
n = int(input())
ld = dict()
for i in range(0, n):
sb_index = int(input())
for j in range(0, sb_index):
l = input()
if l in ld:
ld[l] = ld[l] + 1
else:
ld[l] = 0
allknow_languages = list()
for l in ld:
if ld[l] == n 1:
allknow_languages.append(l)
print(len(allknow_languages))
for l in allknow_languages:
print(l)
print(len(ld))
for i in ld:
print(i)

Студворк — интернет-сервис помощи студентам

Каждый из N школьников некоторой школы знает Mᵢ языков. Определите, какие языки знают все школьники и языки, которые знаетхотя бы один из школьников.

Формат ввода

Первая строка входных данных содержит количество школьников N. Далее идет N чисел Mᵢ, после каждого из чисел идет Mᵢ строк, содержащих названия языков, которыезнает i-й школьник. Длина названий языков не превышает 1000 символов, количестворазличных языков не более 1000. 1≤N≤1000, 1≤Mᵢ≤500.

Формат вывода

В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки — список таких языков. Затем — количество языков, которые знает хотя бы один школьник, на следующих строках — список таких языков.

Примеры:

Кликните здесь для просмотра всего текста

Тест 1
Входные данные:
3
3
Russian
English
Japanese
2
Russian
English
1
English

Вывод программы:
1
English
3
Russian
Japanese
English

Решал следующим методом. Но Тестировщик в одном из своих тестов находит неправильный ответ
Подскажите, пожалуйста, что я мог не учесть при написании кода. Какие варианты мог не предусмотреть.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lang = []
union = set()
all = set()
for i in range(int(input())):
    m = int(input())
    a = {input() for j in range(m)}
    all.update(a)
    if len(union) == 0:
        union.update(a)
    else:
        union &= a
print(len(union))
print('n'.join(sorted(union)))
print(len(all))
print('n'.join(sorted(all)))

Skip to content

Задача «Полиглоты»

Условие

Каждый из некоторого множества школьников некоторой школы знает некоторое количество языков. Нужно определить сколько языков знают все школьники, и сколько языков знает хотя бы один из школьников.

В первой строке задано количество школьников. Для каждого из школьников сперва записано количество языков, которое он знает, а затем — названия языков, по одному в строке.

В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки — список таких языков. Затем — количество языков, которые знает хотя бы один школьник, на следующих строках — список таких языков. Языки нужно выводить в лексикографическом порядке, по одному на строке.

Решение задачи от разработчиков на Python:

Еще одно решение задачи на Python:

Смотреть видео — Задача «Полиглоты» решение на Python

Делитесь с друзьями ссылкой на ответ и задавайте вопросы в комментариях! 👇

Related Posts

Посмотреть все комментарии

wpDiscuz

0

Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Условие

Каждый из некоторого множества школьников некоторой школы знает некоторое количество языков. Нужно определить сколько языков знают все школьники, и сколько языков знает хотя бы один из школьников.

В первой строке задано количество школьников. Для каждого из школьников сперва записано количество языков, которое он знает, а затем — названия языков, по одному в строке.

В первой строке выведите количество языков, которые знаю все школьники. Начиная со второй строки — список таких языков. Затем — количество языков, которые знает хотя бы один школьник, на следующих строках — список таких языков. Языки нужно выводить в лексикографическом порядке, по одному на строке.

Решение

students = [{input() for j in range(int(input()))} for i in range(int(input()))]
known_by_everyone, known_by_someone = set.intersection(*students), set.union(*students)
print(len(known_by_everyone), *sorted(known_by_everyone), sep='n')
print(len(known_by_someone), *sorted(known_by_someone), sep='n')

Я бы работал с множествами:

исходный список языков:

In [65]: stud_langs = [['english', 'russian'], ['english', 'ukrainian', 'russian'], ['english', 'german', 'ukrainian', 'russian']]

преобразуем к списку множеств:

In [66]: stud_langs = [set(x) for x in stud_langs]

In [67]: stud_langs
Out[67]:
[{'english', 'russian'},
 {'english', 'russian', 'ukrainian'},
 {'english', 'german', 'russian', 'ukrainian'}]

пересечение всех множеств — языки, которыми владеют все школьники:

In [68]: set.intersection(*stud_langs)
Out[68]: {'english', 'russian'}

объединение всех множеств — языки, которыми владеет хотя бы один из школьников:

In [69]: set.union(*stud_langs)
Out[69]: {'english', 'german', 'russian', 'ukrainian'}

  • Задача педагога содействовать улучшению допущенных детьми ошибок
  • Задача отчетов об ошибках обрабатывает очередь отчетов
  • Задача отправка сообщила об ошибке 0x800ccc0f
  • Задача отправка сообщила об ошибке 0x80040201 неизвестная ошибка 0x80040201
  • Задача отправка сообщила об ошибке 0x8004010f сбой операции невозможно найти объект