Cod sursa(job #2750161)

Utilizator Andrei_SturzuAndrei Sturzu Andrei_Sturzu Data 10 mai 2021 01:13:48
Problema Zeap Scor 10
Compilator py Status done
Runda Arhiva de probleme Marime 1.69 kb
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 = []

for op in ops:

    if op[0] == "I":
        heapq.heappush(zeap, int(op[1]))

    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]))

print(len([1,1]))