1010 - produs: Difference between revisions
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/1010/produs - produs] ---- == Cerinţa == Se dau două șiruri cu câte '''n''', respectiv '''m''' elemente. Dacă înmulțim fiecare element din primul șir cu fiecare element din al doilea șir, să se afle câte produse sunt mai mici decât '''p'''. == Date de intrare == Programul citește de la tastatură numerele '''n''' și '''p''', iar apoi '''n''' numere naturale, separate prin spații, reprezentând elementele primului șir, dup... |
No edit summary |
||
Line 54: | Line 54: | ||
def conform_restrictiilor( | def conform_restrictiilor(vector, n, vector_2, m, p): | ||
if n < 1 or n > 50000: | if n < 1 or n > 50000: | ||
print("Datele nu sunt comform restricțiilor impuse.") | print("Datele nu sunt comform restricțiilor impuse.") | ||
return False | |||
for x in vector: | for x in vector: | ||
if x > 10000 or x < 0: | if x > 10000 or x < 0: | ||
print("Datele nu sunt comform restricțiilor impuse.") | print("Datele nu sunt comform restricțiilor impuse.") | ||
return False | |||
if m < 1 or m > 50000: | if m < 1 or m > 50000: | ||
print("Datele nu sunt comform restricțiilor impuse.") | print("Datele nu sunt comform restricțiilor impuse.") | ||
return False | |||
for x in vector_2: | for x in vector_2: | ||
if x > 10000 or x < 0: | if x > 10000 or x < 0: | ||
print("Datele nu sunt comform restricțiilor impuse.") | print("Datele nu sunt comform restricțiilor impuse.") | ||
return False | |||
print("Datele sunt corecte.") | print("Datele sunt corecte.") | ||
return | return True | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
vector, n, vector_2, m, p | n, p = map(int, input().split()) | ||
vector = list(map(int, input().split())) | |||
m = int(input()) | |||
vector_2 = list(map(int, input().split())) | |||
if conform_restrictiilor(vector, n, vector_2, m, p) is True: | |||
numere(vector, n, vector_2, m, p) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicaţie cod== | |||
Acesta este un program care primește ca input 2 vectori și un număr întreg, apoi verifică dacă datele de intrare sunt conforme cu restricțiile impuse, după care calculează numărul de perechi de elemente din cele două vectori ale căror produs este mai mic decât numărul întreg dat. | |||
Funcția '''conform_restrictiilor''' verifică dacă valorile date ca input sunt conforme cu următoarele restricții: | |||
'''n''' și '''m''' trebuie să fie între 1 și 50000 | |||
valorile vectorilor trebuie să fie între 0 și 10000 | |||
Dacă valorile de intrare sunt conforme cu restricțiile, se afișează "Datele sunt corecte." și se returnează True, altfel se afișează "Datele nu sunt conforme restricțiilor impuse." și se returnează False. | |||
Funcția '''numere''' primește cei doi vectori, lungimile lor și numărul întreg '''p'''. Folosind o buclă for dublă, calculează numărul de perechi ale căror produs este mai mic decât '''p'''. | |||
În funcția '''main''', se citesc cele patru valori de intrare, apoi se apelează funcția '''conform_restrictiilor''' pentru a verifica dacă datele sunt conforme. Dacă sunt conforme, se apelează funcția numere pentru a calcula numărul de perechi ale căror produs este mai mic decât '''p'''. |
Latest revision as of 14:12, 30 April 2023
Sursa: - produs
Cerinţa[edit | edit source]
Se dau două șiruri cu câte n, respectiv m elemente. Dacă înmulțim fiecare element din primul șir cu fiecare element din al doilea șir, să se afle câte produse sunt mai mici decât p.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele n și p, iar apoi n numere naturale, separate prin spații, reprezentând elementele primului șir, după care citește numărul m urmat de m numere naturale, reprezentând elementele celui de-al doilea șir.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.", iar apoi se va afișa pe ecran numărul nr, reprezentând numărul produselor mai mici decât p. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
Restricţii şi precizări[edit | edit source]
- 1 ≤ p ≤ 200.000
- 1 ≤ n , m ≤ 50.000
- elementele celor două șiruri sunt numere naturale mai mici decât 10.000
Exemple[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- 5 99
- 1 2 3 4 5
- 2
- 25 34
- Ieșire
- Datele sunt corecte.
- 5
Exemplul 2[edit | edit source]
- Intrare
- 4 10
- 10 2 6341 46541242
- 2
- 2541412 341212
- Ieșire
- Datele nu corespund restricțiilor impuse.
Exemplul 3[edit | edit source]
- Intrare
- 4 10
- 10 2 63 465
- 2
- 25 3
- Ieșire
- Datele sunt corecte.
- 1
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 1010 produs
def numere(vector, n, vector_2, m, p):
nr = 0 for i in vector: for j in vector_2: if i * j < p: nr += 1 print(nr)
def conform_restrictiilor(vector, n, vector_2, m, p):
if n < 1 or n > 50000: print("Datele nu sunt comform restricțiilor impuse.") return False for x in vector: if x > 10000 or x < 0: print("Datele nu sunt comform restricțiilor impuse.") return False if m < 1 or m > 50000: print("Datele nu sunt comform restricțiilor impuse.") return False for x in vector_2: if x > 10000 or x < 0: print("Datele nu sunt comform restricțiilor impuse.") return False print("Datele sunt corecte.") return True
if __name__ == '__main__':
n, p = map(int, input().split()) vector = list(map(int, input().split())) m = int(input()) vector_2 = list(map(int, input().split())) if conform_restrictiilor(vector, n, vector_2, m, p) is True: numere(vector, n, vector_2, m, p)
</syntaxhighlight>
Explicaţie cod[edit | edit source]
Acesta este un program care primește ca input 2 vectori și un număr întreg, apoi verifică dacă datele de intrare sunt conforme cu restricțiile impuse, după care calculează numărul de perechi de elemente din cele două vectori ale căror produs este mai mic decât numărul întreg dat.
Funcția conform_restrictiilor verifică dacă valorile date ca input sunt conforme cu următoarele restricții:
n și m trebuie să fie între 1 și 50000 valorile vectorilor trebuie să fie între 0 și 10000
Dacă valorile de intrare sunt conforme cu restricțiile, se afișează "Datele sunt corecte." și se returnează True, altfel se afișează "Datele nu sunt conforme restricțiilor impuse." și se returnează False.
Funcția numere primește cei doi vectori, lungimile lor și numărul întreg p. Folosind o buclă for dublă, calculează numărul de perechi ale căror produs este mai mic decât p.
În funcția main, se citesc cele patru valori de intrare, apoi se apelează funcția conform_restrictiilor pentru a verifica dacă datele sunt conforme. Dacă sunt conforme, se apelează funcția numere pentru a calcula numărul de perechi ale căror produs este mai mic decât p.