Кирнев Юрий, 321 группа CompactPairs 14088
Файзуллов Айрат Рафагатович 530 группа CompactPairs 14190
f1import stringf1import string
2import sys2import sys
33
4class Pairs:4class Pairs:
n5    __slots__ = '_start'n5    __slots__ = ('_offset',)
66
n7    def __init__(self, N):n7    def __init__(self, initial_value):
8        self._start = N8        self._offset = initial_value
99
n10    def __getattr__(self, name):n10    def __getattr__(self, attribute):
11        if name in string.ascii_letters:11        if attribute in string.ascii_letters:
12            i = string.ascii_letters.index(name) + 112            char_index = string.ascii_letters.index(attribute) + 1
13            l = len(string.ascii_letters)13            alphabet_size = len(string.ascii_letters)
14            val = (self._start + i - 2) % l + 114            mapped_value = (self._offset + char_index - 2) % alphabet_si
 >ze + 1
15            return val15            return mapped_value
1616
n17    def __setattr__(self, name, val):n17    def __setattr__(self, attribute, value):
18        if name in string.ascii_letters:18        if attribute in string.ascii_letters:
19            i = string.ascii_letters.index(name) + 119            char_index = string.ascii_letters.index(attribute) + 1
20            step = (val - i) % len(string.ascii_letters)20            adjustment = (value - char_index) % len(string.ascii_letters
 >)
21            self._start = 1 + step21            self._offset = 1 + adjustment
22        else:22        else:
n23            super().__setattr__(name, val)n23            super().__setattr__(attribute, value)
2424
25    def __str__(self):25    def __str__(self):
t26        l = len(string.ascii_letters)t26        alphabet_size = len(string.ascii_letters)
27        ans = [None] * l27        reordered = [None] * alphabet_size
28        for i, c in enumerate(string.ascii_letters):28        for idx, char in enumerate(string.ascii_letters):
29            val = (self._start + i - 1) % l + 129            mapped_position = (self._offset + idx - 1) % alphabet_size +
 > 1
30            ans[val - 1] = c30            reordered[mapped_position - 1] = char
31        return ' '.join(ans)31        return ' '.join(reordered)
32exec(sys.stdin.read())32exec(sys.stdin.read())
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op