3236 - Par Impar 2: Diferență între versiuni
Fără descriere a modificării |
|||
Linia 6: | Linia 6: | ||
==Date de ieșire== | ==Date de ieșire== | ||
Fișierul de ieșire <span style=“color: red”> parimpar2.out</span> va conține două numere separate printr-un spațiu, primul reprezentând al <span style=“color: red”> p</span>-lea element par, iar al doilea număr reprezentând al <span style=“color: red”> i</span>-lea element impar din lista numerelor din fișierul de intrare. Dacă nu avem <span style=“color: red”> p</span> elemente pare sau <span style=“color: red”> i</span> elemente impare se va afișa mesajul <span style=“color: red”> Nu Exista.</span> | Fișierul de ieșire <span style=“color: red”> parimpar2.out</span> va conține două numere separate printr-un spațiu, primul reprezentând al <span style=“color: red”> p</span>-lea element par, iar al doilea număr reprezentând al <span style=“color: red”> i</span>-lea element impar din lista numerelor din fișierul de intrare. Dacă nu avem <span style=“color: red”> p</span> elemente pare sau <span style=“color: red”> i</span> elemente impare se va afișa mesajul <span style=“color: red”> "Nu Exista", altfel se va afisa mesajul "Date de intrare valide".</span> | ||
==Restricții și precizări== | ==Restricții și precizări== |
Versiunea de la data 29 aprilie 2023 17:14
Cerința
Se dau două numere naturale i p și o listă cu numere naturale. Să se determine al p-lea element par din listă și al i-lea element impar din listă.
Date de intrare
Fișierul de intrare parimpar2.in conține pe prima linie numerele i și p, iar pe a doua linie mai multe numere naturale separate prin spații.
Date de ieșire
Fișierul de ieșire parimpar2.out va conține două numere separate printr-un spațiu, primul reprezentând al p-lea element par, iar al doilea număr reprezentând al i-lea element impar din lista numerelor din fișierul de intrare. Dacă nu avem p elemente pare sau i elemente impare se va afișa mesajul "Nu Exista", altfel se va afisa mesajul "Date de intrare valide".
Restricții și precizări
1 ≤ i,p ≤ 100.000 numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât 1.000.000.000
Exemplu:
parimpar2.in 2 2 63 83 60 34 92
parimpar2.out 34 83
Explicație
Primul element par este 60, iar al doilea este 34. Primul element impar este 63</span., iar al doilea este 83. Deci se va afișa în fișierul de ieșire 34 83.
parimpar2.in 3 2 37 93 6 49 9 59
parimpar2.out Nu Exista
Explicație
În fișier se găsesc 3 numere impare, dar se găsește doar unul par.
Rezolvare
def validare(i, p, nums):
if not (1 <= i <= 100000 and 1 <= p <= 100000):
return False
if not all(0 <= num <= 1000000000 for num in nums):
return False
return True
def parimpar(a, b, nums):
rez1, rez2 = 0, -1
for x in nums:
if x % 2 == 1:
a -= 1
if a == 0:
rez1 = x
else:
b -= 1
if b == 0:
rez2 = x
if a == 0 and b == 0:
break
if rez1 == 0 or rez2 == -1:
fout.write("Nu Exista")
else:
fout.write(str(rez2) + " " + str(rez1))
fin.close()
fout.close()
if __name__ == '__main__':
fin = open("parimpar2.in")
fout = open("parimpar2.out", "w")
i, p = map(int, fin.readline().split())
nums = [int(x) for x in fin.readline().split()]
if validare(i, p, nums):
print("Date de intrare valide")
parimpar(i, p, nums)