3770 - Bisectoare
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">
- 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()
</syntaxhighlight>