3770 - Bisectoare

From Bitnami MediaWiki

Cerința[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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

Exemplul 1[edit | edit source]

bisectoareIN.txt:

1 -3 5 -3 1

bisectoareOUT.txt:

5

Exemplul 2[edit | edit source]

bisectoareIN.txt:

1 -3 5 -3 1 999999999999

bisectoareOUT.txt:

Conditiile nu sunt indeplinite

Rezolvare[edit | edit source]

<syntaxhighlight lang="python3" line="1">

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


</syntaxhighlight>