Pagini recente » Cod sursa (job #2226856) | Autentificare | Cod sursa (job #3156009) | Cod sursa (job #839929) | Cod sursa (job #2750164)
import heapq
file = 'zeap.in'
with open(file, 'rt') as f:
content = f.readlines()
content = [line.strip().split() for line in content]
ops = content
# print(content)
zeap = []
inserted = {}
for op in ops:
if op[0] == "I":
try:
if inserted[int(op[1])] == 0:
heapq.heappush(zeap, int(op[1]))
inserted[int(op[1])] = 1
# print(zeap)
except KeyError:
heapq.heappush(zeap, int(op[1]))
inserted[int(op[1])] = 1
# print(zeap)
elif op[0] == "S":
try:
i = zeap.index(int(op[1]))
zeap[i] = zeap[-1]
zeap.pop()
heapq.heapify(zeap)
except ValueError:
with open("zeap.out", 'a') as f:
f.write("-1\n")
# print(-1)
elif op[0] == "C":
try:
res = zeap.index(int(op[1]))
# print(1)
with open("zeap.out", 'a') as f:
f.write("1\n")
except ValueError:
with open("zeap.out", 'a') as f:
f.write("0\n")
# print(0)
elif op[0] == "MAX":
if len(zeap) < 2:
with open("zeap.out", 'a') as f:
f.write("-1\n")
else:
with open("zeap.out", 'a') as f:
result = str(abs(zeap[0] - heapq.nlargest(1, zeap)[0]))
f.write(result)
f.write('\n')
# print(abs(zeap[0] - heapq.nlargest(1, zeap)[0]))
elif op[0] == "MIN":
if len(zeap) < 2:
with open("zeap.out", 'a') as f:
f.write("-1\n")
else:
min_dif = heapq.nsmallest(2, zeap)
with open("zeap.out", 'a') as f:
result = str(abs(min_dif[1] - min_dif[0]))
f.write(result)
f.write('\n')
# print(abs(min_dif[1] - min_dif[0]))