|
|
(One intermediate revision by the same user not shown) |
Line 1: |
Line 1: |
| == Cerința ==
| |
| Se dau doi vectori de numere întregi. Să se determine vectorul rezultat din interclasarea celor doi vectori, păstrând ordinea elementelor.
| |
| == Date de intrare ==
| |
| Programul citește de la tastatură doi vectori de numere întregi.
| |
| == Date de ieșire ==
| |
| Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
| |
| În următorul rând se va afișa pe ecran vectorul rezultat din interclasarea celor doi vectori.
| |
|
| |
|
| În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."
| |
| == Restricții și precizări ==
| |
| * 1 ⩽ '''numar_elemente_vector1''', '''numar_elemente_vector2''' ⩽ 100000
| |
| == Exemplu 1 ==
| |
| ;Intrare
| |
| 1 3 5<br>
| |
| 2 4 6
| |
| ;Iesire
| |
| Datele de intrare corespund restricțiilor impuse.
| |
| [1, 2, 3, 4, 5, 6]
| |
| == Rezolvare ==
| |
| <syntaxhighlight lang=”python” line>
| |
| def citeste_vectori():
| |
| try:
| |
| vector_1 = list(map(int, input("Introduceți elementele primului vector: ").split()))
| |
| vector_2 = list(map(int, input("Introduceți elementele celui de-al doilea vector: ").split()))
| |
| return vector_1, vector_2
| |
| except ValueError:
| |
| return None, None
| |
|
| |
| def valideaza_date(vector_1, vector_2):
| |
| if 1 <= len(vector_1) <= 100000 and 1 <= len(vector_2) <= 100000:
| |
| if all(-10**9 <= elem <= 10**9 for elem in vector_1) and all(-10**9 <= elem <= 10**9 for elem in vector_2):
| |
| return True
| |
| return False
| |
|
| |
| def interclasare(vector_1, vector_2):
| |
| rezultat = []
| |
| i, j = 0, 0
| |
| while i < len(vector_1) and j < len(vector_2):
| |
| if vector_1[i] < vector_2[j]:
| |
| rezultat.append(vector_1[i])
| |
| i += 1
| |
| else:
| |
| rezultat.append(vector_2[j])
| |
| j += 1
| |
| rezultat.extend(vector_1[i:])
| |
| rezultat.extend(vector_2[j:])
| |
| return rezultat
| |
|
| |
| def main():
| |
| vector_1, vector_2 = citeste_vectori()
| |
|
| |
| if vector_1 is None or vector_2 is None:
| |
| print("Datele de intrare nu corespund restricțiilor impuse.")
| |
| return
| |
|
| |
| if valideaza_date(vector_1, vector_2):
| |
| print("Datele de intrare corespund restricțiilor impuse.")
| |
| rezultat = interclasare(vector_1, vector_2)
| |
| print(rezultat)
| |
| else:
| |
| print("Datele de intrare nu corespund restricțiilor impuse.")
| |
|
| |
| if __name__ == "__main__":
| |
| main()
| |
|
| |
| </syntaxhighlight>
| |