Indeksy pierwszej pary o sumie x
Treść zadania
Wczytaj listę n liczb całkowitych oraz liczbę x. Znajdź indeksy i, j (gdzie $i < j$) takie, że lista[i] + lista[j] == x.
Jeśli takich par jest kilka, wybierz tę o najmniejszym i, a przy równym i — o najmniejszym j. Jeśli nie ma żadnej — wypisz -1 -1.
Dane wejściowe
- 1. linia: liczba elementów
n - 2. linia:
nliczb całkowitych oddzielonych spacjami - 3. linia: liczba całkowita
x
Dane wyjściowe
Jedna linia: dwie liczby i j oddzielone spacją albo -1 -1.
Ograniczenia
- $n \ge 2$
Uwagi
- Para składa się z dwóch różnych pozycji w liście — elementu nie można dodać do samego siebie.
- Wystarczą dwie zagnieżdżone pętle: zewnętrzna po
i, wewnętrzna pojodi + 1do końca listy. Szybszy sposób, ze słownikiem, poznasz w rozdziale 17.
Przykład
5 1 3 4 5 2 5
0 2
Sumę $5$ dają pary indeksów $(0, 2)$: $1 + 4$ oraz $(1, 4)$: $3 + 2$. Pierwsza z nich ma mniejsze i.
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 9
Zadania w tym rozdziale ćwiczą podstawowe operacje na listach: wczytywanie, przechodzenie pętlą, modyfikowanie elementów, wyszukiwanie i zliczanie.
Konwencje wspólne:
- Każde zadanie (i każdy podpunkt) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Lista na wejściu zajmuje dwie linie: w 1. linii jest liczba elementów
n, a w 2. linii —nliczb oddzielonych pojedynczymi spacjami. Dodatkowe dane (np. szukany klucz) są w kolejnych liniach, po jednej wartości w linii. - Taką listę wczytasz np. tak:
```python
n = int(input())
lista = [int(x) for x in input().split()]` - Gdy wynikiem jest lista, wypisz ją instrukcją
print(lista). Python wypisze ją w nawiasach kwadratowych, z elementami oddzielonymi przecinkiem i spacją, np.[4, 10, 8]. Pusta lista to[]. - Jeśli zadanie mówi „oddzielone spacją” — użyj pojedynczej spacji.
- Indeksy elementów liczymy od
0. - Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono4 2 7 11 15 9
0 1
Test 2
Nie uruchomiono3 1 2 3 7
-1 -1
Test 3
Nie uruchomiono5 3 8 1 5 7 6
2 3
Test 4
Nie uruchomiono6 1 4 2 6 3 2 4
0 4
Test 5
Nie uruchomiono4 0 -2 7 2 0
1 3
Test 6
Nie uruchomiono3 3 4 5 6
-1 -1