Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/120: Рейтинг темы: голосов - 120, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 29.12.2020
Сообщений: 51

Антиматерия

09.02.2021, 22:56. Показов 23266. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Антиматерия образована почти из таких же структурных элементов, что и обычная материя – такая же масса, такой же по величине заряд. Только знак у этого заряда противоположный. То есть у электронов минус, а у антиэлектронов – плюс, у протонов – плюс, у антипротонов – минус. И если такие атом и антиатом встретятся, то сразу аннигилируют, то есть превратятся в чистую энергию и пропадут.

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

Итак, у нас есть несколько сосудов, в каждом из них находятся частицы одного сорта.

Будем считать, что для того, чтобы остаться, частица ни разу не должна встретить своего повторения из другого сосуда. Любое количество повторений – и все повторяющиеся частицы пропадают.

Напишите программу, которая определит, что останется, если соединить частицы, находящиеся в разных сосудах.

Формат ввода
Вводятся числа, пока не будет введена пустая строка. Разделитель сосудов – число -1. Количество сосудов заранее неизвестно.

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

Пример 1
Ввод Вывод
45
26
22
22
-1
26
-1
45
10
26
-1

22 10
Пример 2
Ввод Вывод
41
8
36
9
37
-1
41
50
41
-1

37 8 36 9 50
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2021, 22:56
Ответы с готовыми решениями:

Антиматерия. Вывести в одной строке через пробел все числа, для которых не было повторений в других сосудах.
Антиматерия образована почти из таких же структурных элементов, что и обычная материя – такая же масса, такой же по величине заряд. Только...

Антиматерия
Антиматерия Компания тестирует технологию получения антивещества, используемого в качестве топлива в межпланетном звездолёте....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
10.02.2021, 07:12
задача на множества. Используйте symmetric_difference для множеств set. Типа set1^set2
0
3 / 3 / 0
Регистрация: 27.01.2021
Сообщений: 12
10.02.2021, 08:42
Откуда вы это взяли?
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
11.02.2021, 18:40
u235, вот что у меня получилось

Python
1
2
3
4
5
6
7
8
C = [A for A in iter(input, '')]
D = []
A = set()
for B in C:
    if B != '-1':
        A.add(B)
    else:
        D.append(A); A = set()
Этот код добавляет в список множества, но как написать symmetric difference Для них я не знаю, потому что symmetric difference для двух множеств, а тут их может быть больше трёх...
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
11.02.2021, 19:22
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
In [1]: from collections import Counter
 
In [2]: from itertools import chain, groupby
 
In [3]: def solution():
   ...:     counter = Counter(chain.from_iterable(set(g) for k, g in groupby(map(int, iter(input, "")), lambda x: x == -1) if not k)).most_common()
   ...:     print(*(particle for particle, count in counter if count == 1))
   ...:
 
In [4]: solution()
45
26
22
22
-1
26
-1
45
10
26
-1
 
22 10
 
In [5]: solution()
41
8
36
9
37
-1
41
50
41
-1
 
36 37 8 9 50
/upd

Не по теме:

Цитата Сообщение от gray621 Посмотреть сообщение
как написать symmetric difference
Какую же ты дичь нагородил в своих темах... Нет бы просто привести условие задачи или скинуть ссылку на тему...

0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
11.02.2021, 23:30
Arsegg, можете дописать моё решение, пожалуйста. Я не знаю как доделать

Добавлено через 1 час 56 минут
Arsegg, как дописать этот код?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from collections import Counter
 
 
def solution():
    numbers = [charge for charge in iter(input, "")]
 
    result = []
    set_ = set()
    for num in numbers:
        if num != '-1':
            set_.add(num)
        else:
            result.append(set_)
            set_ = set()
 
    c = Counter()
    for i in result:
        for num in i:
            c[num] += 1
 
 
solution()
в c.most_common() будет список с кортежами чисел, только я не знаю как вывести...
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.02.2021, 22:41
LevL123, Arsegg,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uniq = set()
been = set()
temp = set()
flag = True
num = input()
while num:
    if num == "-1":
        if flag:
            uniq = temp
            flag = False
        else:
            been = been | uniq & temp
            uniq = (uniq ^ temp) - been
        temp = set()
    else:
        temp.add(num)
    num = input()
print(*uniq)
0
8 / 8 / 0
Регистрация: 06.12.2022
Сообщений: 44
21.12.2022, 11:19
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
result = set()
res = set()
res1 = set()
while True:
    x = input()
    if x == "":
        break
    if x == "-1":
        res1 = res1 | (result & res)  # получаем все совпадения
        result = result ^ res  # получаем данные которые не совпали а также те которые были убраны в предыдущем ходе
        res = set()
        continue
    res.add(x)
print(*result - res1)  # частично правильный ответ - точно не правильные = правильно
0
2 / 2 / 0
Регистрация: 01.12.2023
Сообщений: 5
01.12.2023, 12:10
Сам из яндекс лицея, код полностью рабочий

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
unique_in_vessel = set()    # уникальные в сосуде
unique = set()  # уникальные в целом
repeated = set()    # повторяющиеся
 
num = input()
while num != '':
    if num == '-1':
        unique = unique.union(unique_in_vessel)     # расширить множество 
        # уникальных, добавив уникальные в сосуде
        unique = unique - repeated  # удалить элементы, которые уже встречались
        unique_in_vessel.clear()    # очистить множество для след. сосуда 
    else:
        if num not in repeated:     # если частицы нет в повторяющихся:
            unique_in_vessel.add(num)   # добавить в уникальные в сосуде
        if num in unique:   # если частицы в множестве уникалных частиц:
            repeated.add(num)   # добавить частицу в повторяющиеся
    num = input()
 
for particle in unique:     # выводим уникальные частицы
    print(particle, end=' ')
2
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
01.12.2023, 13:51
Ну или так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
prev_se = set()
se = set()
bad_se = set()
while (s := input('->')) != '':
    k = int(s)
    if k == -1:
        bad_se |= prev_se & se
        prev_se |= se
        se.clear()
    else:
        se.add(k)
print(*(prev_se-bad_se))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru