3770 - Bisectoare

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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