-
-
Save tonussi/5a0fecad9183d664285287d33f22a982 to your computer and use it in GitHub Desktop.
| class Listinha(): | |
| elements = list() | |
| def insert(self, pos, newEl): | |
| if pos < 0: | |
| return | |
| if pos > len(self.elements): | |
| return | |
| first = pos | |
| second = pos + 1 | |
| if pos == 0: | |
| first = pos - 1 | |
| second = pos | |
| if pos == 0: | |
| first = second = 0 | |
| if pos > 0 and pos < len(self.elements): | |
| first = second = pos | |
| self.elements = self.elements[:first] + [newEl] + self.elements[second:len(self.elements)] | |
| def pprint(self): | |
| # print('pprint') | |
| print(self.elements) | |
| def remove(self, occur): | |
| # print('remove', pos) | |
| first_occur_index = None | |
| for i in range(len(self.elements)): | |
| if self.elements[i] == occur: | |
| first_occur_index = i | |
| if first_occur_index is not None: | |
| if first_occur_index + 1 < len(self.elements): | |
| self.elements = self.elements[:first_occur_index] + self.elements[first_occur_index+1:len(self.elements)] | |
| def append(self, newEl): | |
| # print('append', newEl) | |
| self.elements = self.elements + [newEl] | |
| def sort(self): | |
| # print('sort') | |
| self.elements = sorted(self.elements) | |
| def pop(self): | |
| # print('pop') | |
| self.elements = self.elements[:len(self.elements) - 1] | |
| def reverse(self): | |
| # print('reverse') | |
| self.elements = sorted(self.elements, reverse=True) | |
| def choices(self): | |
| return { | |
| "insert": self.insert, | |
| "pprint": self.pprint, | |
| "remove": self.remove, | |
| "append": self.append, | |
| "sort": self.sort, | |
| "pop": self.pop, | |
| "reverse": self.reverse | |
| } | |
| if __name__ == '__main__': | |
| N = int(input()) | |
| i = 0 | |
| splitted = None | |
| listinha = Listinha() | |
| while (i < 12): | |
| command_i = input() | |
| if command_i is None: | |
| break | |
| splitted = command_i.split(' ') | |
| if len(splitted) == 3: | |
| command, v1, v2 = splitted | |
| listinha.choices()[command](int(v1), int(v2)) | |
| if len(splitted) == 2: | |
| command, v1 = splitted | |
| listinha.choices()[command](int(v1)) | |
| if len(splitted) == 1: | |
| command = splitted | |
| # print('c', command[0]) | |
| if command[0] == 'print': | |
| listinha.choices()['p' + command[0]]() | |
| else: | |
| listinha.choices()[command[0]]() | |
| i+=1 |
[1, 48, 75, 30, 44, 6, 10, 44, 8, 9, 87, 75, 21, 2, 67, 12, 7, 66, 3, 5]
[5, 3, 66, 7, 12, 67, 2, 21, 75, 87, 9, 8, 44, 10, 6, 44, 30, 75, 48, 1]
[1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 21, 30, 44, 44, 48, 66, 67, 75, 75, 87]
[1, 3, 5, 6, 7, 8, 9, 10, 12, 21, 30, 44, 44, 48, 66, 67, 75, 75, 87, 2, 5]
[1, 48, 75, 30, 44, 6, 10, 44, 8, 9, 87, 75, 21, 2, 67, 12, 7, 66, 3, 5]
[5, 3, 66, 7, 12, 67, 2, 21, 75, 87, 9, 8, 44, 10, 6, 44, 30, 75, 48, 1]
[1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 21, 30, 44, 44, 48, 66, 67, 75, 75, 87]
[1, 3, 5, 6, 7, 8, 9, 10, 12, 21, 30, 44, 44, 48, 66, 67, 75, 75, 87, 2, 5]
[1, 48, 75, 30, 44, 6, 10, 44, 8, 9, 87, 75, 21, 2, 67, 12, 7, 66, 3, 5]
[5, 3, 66, 7, 12, 67, 2, 21, 75, 87, 9, 8, 44, 10, 6, 44, 30, 75, 48, 1]
[1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 21, 30, 44, 44, 48, 66, 67, 75, 75, 87]
[1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 21, 30, 44, 44, 48, 66, 67, 75, 75, 87, 5]
class Listinha():
elements = list()
def insert(self, pos, newEl):
if pos < 0:
return
if pos > len(self.elements):
return
first = pos
second = pos + 1
if pos == 0:
first = pos - 1
second = pos
if pos == 0:
first = second = 0
if pos > 0 and pos < len(self.elements):
first = second = pos
self.elements = self.elements[:first] + [newEl] + self.elements[second:len(self.elements)]
def pprint(self):
# print('pprint')
print(self.elements)
def remove(self, occur):
# print('remove', pos)
first_occur_index = None
for i in range(len(self.elements)):
if self.elements[i] == occur:
first_occur_index = i
break
if first_occur_index is not None:
if first_occur_index + 1 < len(self.elements):
self.elements = self.elements[:first_occur_index] + self.elements[first_occur_index+1:len(self.elements)]
def append(self, newEl):
# print('append', newEl)
self.elements = self.elements + [newEl]
def sort(self):
# print('sort')
self.elements = sorted(self.elements)
def pop(self):
# print('pop')
self.elements = self.elements[:len(self.elements) - 1]
def reverse(self):
# print('reverse')
reverse_elements = []
for e in range(len(self.elements) - 1, -1, -1):
reverse_elements.append(self.elements[e])
self.elements = reverse_elements
def choices(self):
return {
"insert": self.insert,
"pprint": self.pprint,
"remove": self.remove,
"append": self.append,
"sort": self.sort,
"pop": self.pop,
"reverse": self.reverse
}
if __name__ == '__main__':
N = int(input())
i = 0
splitted = None
listinha = Listinha()
while (i < N):
command_i = input()
if command_i is None:
break
splitted = command_i.split(' ')
if len(splitted) == 3:
command, v1, v2 = splitted
listinha.choices()[command](int(v1), int(v2))
if len(splitted) == 2:
command, v1 = splitted
listinha.choices()[command](int(v1))
if len(splitted) == 1:
command = splitted
# print('c', command[0])
if command[0] == 'print':
listinha.choices()['p' + command[0]]()
else:
listinha.choices()[command[0]]()
i+=1
29
append 1
append 6
append 10
append 8
append 9
append 2
append 12
append 7
append 3
append 5
insert 8 66
insert 1 30
insert 6 75
insert 4 44
insert 9 67
insert 2 44
insert 9 21
insert 8 87
insert 1 75
insert 1 48
print
reverse
print
sort
print
append 2
append 5
remove 2
print