Алмаз Сейтхазин (КФ МГУ, кафедра НДС) SetJuggler 4343
Барлыбай Мади, 311/312 группа SetJuggler 4383
t1words = []t1words = []
2while True:2while True:
3    line = input().strip()3    line = input().strip()
4    if not line:4    if not line:
5        break5        break
6    words.extend(line.split())6    words.extend(line.split())
7sets = {'ALL': set(words)}7sets = {'ALL': set(words)}
8program = []8program = []
9while True:9while True:
10    line = input().strip()10    line = input().strip()
11    if not line:11    if not line:
12        break12        break
13    program.append(line)13    program.append(line)
14for line in program:14for line in program:
15    parts = line.split()15    parts = line.split()
16    if parts[0] == 'print':16    if parts[0] == 'print':
17        set_names = parts[1].split(',')17        set_names = parts[1].split(',')
18        result_set = set()18        result_set = set()
19        for name in set_names:19        for name in set_names:
20            if name in sets:20            if name in sets:
21                result_set |= sets[name]21                result_set |= sets[name]
22        print(' '.join(sorted(result_set)))22        print(' '.join(sorted(result_set)))
23    elif parts[0] == 'search':23    elif parts[0] == 'search':
24        source_names = parts[1].split(',')24        source_names = parts[1].split(',')
25        if parts[2] == 'where':25        if parts[2] == 'where':
26            substring = parts[3]26            substring = parts[3]
27            target_name = parts[5]27            target_name = parts[5]
28            source_set = set()28            source_set = set()
29            for name in source_names:29            for name in source_names:
30                if name in sets:30                if name in sets:
31                    source_set |= sets[name]31                    source_set |= sets[name]
32            result_set = {item for item in source_set if substring in it32            result_set = {item for item in source_set if substring in it
>em}>em}
33            sets[target_name] = result_set33            sets[target_name] = result_set
34        elif parts[2] == 'for':34        elif parts[2] == 'for':
35            search_names = parts[3].split(',')35            search_names = parts[3].split(',')
36            target_name = parts[5]36            target_name = parts[5]
37            source_set = set()37            source_set = set()
38            for name in source_names:38            for name in source_names:
39                if name in sets:39                if name in sets:
40                    source_set |= sets[name]40                    source_set |= sets[name]
41            search_set = set()41            search_set = set()
42            for name in search_names:42            for name in search_names:
43                if name in sets:43                if name in sets:
44                    search_set |= sets[name]44                    search_set |= sets[name]
45            result_set = source_set & search_set45            result_set = source_set & search_set
46            sets[target_name] = result_set46            sets[target_name] = result_set
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op