1266 - Cauta Nr In Matrice: Difference between revisions
Pagină nouă: == Cerinta == Se dă o matrice cu n linii şi m coloane ce conţine numere naturale astfel încât parcurgând matricea pe prima linie de la stânga la dreapta, pe a doua linie de la dreapta la stânga, pe a treia linie de la stânga la drepta, ş.a.m.d., toate elementele matricei vor forma un şir strict crescător. Fiind date p numere naturale ordonate strict crescător, să se afişeze pentru fiecare numărul liniei şi coloanei unde acesta se găseşte în matrice, respe... |
No edit summary |
||
Line 50: | Line 50: | ||
return i + 1, j + 1 # Adăugăm 1 pentru a afișa linia și coloana în formatul din enunț | return i + 1, j + 1 # Adăugăm 1 pentru a afișa linia și coloana în formatul din enunț | ||
return 0, 0 # Numărul nu a fost găsit în matrice | return 0, 0 # Numărul nu a fost găsit în matrice | ||
def main(): | def main(): |
Revision as of 08:36, 12 December 2023
Cerinta
Se dă o matrice cu n linii şi m coloane ce conţine numere naturale astfel încât parcurgând matricea pe prima linie de la stânga la dreapta, pe a doua linie de la dreapta la stânga, pe a treia linie de la stânga la drepta, ş.a.m.d., toate elementele matricei vor forma un şir strict crescător. Fiind date p numere naturale ordonate strict crescător, să se afişeze pentru fiecare numărul liniei şi coloanei unde acesta se găseşte în matrice, respectiv 0 dacă acesta nu se găseşte în matrice.
Date de intrare
Fișierul de intrare cautanrinmatrice.txt conține pe prima linie numerele n şi m reprezentând dimensiunile matricei , pe următoarele n linii câte m numere aranjate conform enunţului reprezentând elementele matricei, pe următoarea linie numărul p, iar pe ultima linie cele p numere în ordine strict crescătoare ce trebuie căutate în matrice.
Date de iesire
Fișierul de ieșire cautanrinmatrice.txt va conține pe primele p linii numărul liniei şi coloanei pe care se află în matrice fiecare din cele p numere date, respectiv 0 dacă numărul nu se găseşte în matrice.
Restrictii si precizari
- 1 ≤ n , m ≤ 1000
- elementele matricei sunt numere naturale mai mici decât 2.000.000.000
- 1 ≤ p ≤ 1.000.000
- cele p numere vor fi mai mici decât 2.000.000.000
Exemplul 1
- Intrare
- 3 4
- 2 5 11 14
- 29 27 23 19
- 32 38 44 59
- 3
- 11 24 38
- Iesire
- Datele introduse corespund restrictiilor impuse.
- 1 3
- 0
- 3 2
Exemplul 2
- Intrare
- 3 2
- 5 8
- 12 19
- 23 21
- Iesire
- Datele introduse nu corespund restrictiilor impuse.
Rezolvare
def cauta_in_matrice(matrice, numar):
for i in range(len(matrice)): for j in range(len(matrice[i])): if matrice[i][j] == numar: return i + 1, j + 1 # Adăugăm 1 pentru a afișa linia și coloana în formatul din enunț return 0, 0 # Numărul nu a fost găsit în matrice
def main():
# Citirea datelor de intrare din fișier with open("cautanrinmatrice.in", "r") as f: n, m = map(int, f.readline().split()) matrice = [list(map(int, f.readline().split())) for _ in range(n)] p = int(f.readline()) numere_cautate = list(map(int, f.readline().split()))
# Deschiderea fișierului de ieșire pentru scriere with open("cautanrinmatrice.out", "w") as g: # Căutarea și scrierea rezultatelor în fișierul de ieșire for numar in numere_cautate: linie, coloana = cauta_in_matrice(matrice, numar) g.write(f"{linie} {coloana}\n")
if __name__ == "__main__":
main()
Explicatie
Numărul 11 se află în matrice pe linia 1 coloana 3, numărul 24 nu se află în matrice, iar numărul 38 se află în matrice pe linia 3, coloana 2.