3770 - Bisectoare

De la Universitas MediaWiki

Cerința

RAU-Gigel are un șir de puncte, nu neapărat distincte, aflate pe prima bisectoare. Punctele sunt caracterizate prin câte două coordonate (abscisă și ordonată), ambele numere întregi. Când le-a copiat pe caiet, din neatenție, RAU-Gigel a amestecat coordonatele celor N puncte și omis ordonata unuia dintre ele. Care este aceasta, puteți să îl ajutați?

Date de intrare

Fișierul de intrare bisectoareIN.txt conține un număr impar de linii (2*N-1), pe fiecare linie aflându-se câte un număr întreg x cu semnificația din enunț.

Date de ieșire

Fișierul de ieșire bisectoareOUT.txt va conține pe prima linie un număr întreg reprezentând ordonata ștearsă din neatenție.

Restricții și precizări

  • 1 ≤ N ≤ 10000, -1.000.000.000 ≤ x ≤ 1.000.000.000
  • prima bisectoare are ecuația y = x

Exemplul 1

bisectoareIN.txt:

1 -3 5 -3 1

bisectoareOUT.txt:

5

Exemplul 2

bisectoareIN.txt:

1 -3 5 -3 1 999999999999

bisectoareOUT.txt:

Conditiile nu sunt indeplinite

Rezolvare

#Verfificare elemente
def verficicare():
    with open('bisectoareIN.txt', 'r') as file:
        linii = [int(line.strip()) for line in file]
        for i in linii:
            if -1000000000 > i or i > 1000000000:
                return
        if 1 > len(linii) or 10000 < len(linii):
            return
        return linii

#Functia principala
def main():
    lista = verficicare()
    if lista == None:
        print("Conditiile nu sunt indeplinite")
        return
    lenght = len(lista)
    i=0
    while(i<lenght-1):
        j=i+1
        while(j<lenght):
            if lista[i] == lista[j]:
                    lista.remove(lista[i])
                    lista.remove(lista[j-1])
                    lenght -= 2
                    i+=1
                    continue
            j+=1
        i+=1
    for i in lista:
        if i >= 0:
            with open('bisectoareOUT.txt', 'w') as file:
                file.write(str(i))
            break

main()