4265 - perechiAB: Diferență între versiuni
De la Universitas MediaWiki
(Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/4265/perechiab 4265 - perechiAb] ---- == Cerinţa == Se dă un șir v1, v2, …, vn de numere naturale nenule și de asemenea se dau două numere naturale nenule A și B. Să se determine numărul perechilor (vi , vj) cu i < j și A ≤ vi + vj ≤ B. == Date de intrare == Programul citește de la tastatură numărul n, apoi șirul de n numere naturale, separate prin spații, iar la final se citesc numerele naturale nenule A și B. == Da...) |
Fără descriere a modificării |
||
Linia 36: | Linia 36: | ||
print(count) | print(count) | ||
=== Rezolvare ver 1.1 === | |||
def validate_input(n, v, A, B): | |||
if n < 3 or n > 160000: | |||
print("n nu respecta restricțiile impuse") | |||
return False | |||
for i in range(n): | |||
if v[i] < 1 or v[i] > 1000000000: | |||
print("valorile din v nu respecta restricțiile impuse") | |||
return False | |||
if A < 1 or B > 2000000000 or A > B: | |||
print("A si B nu respecta restricțiile impuse") | |||
return False | |||
return True | |||
def numar_perechi(n, v, A, B): | |||
count = 0 | |||
for i in range(n-1): | |||
for j in range(i+1, n): | |||
if A <= v[i] + v[j] <= B: | |||
count += 1 | |||
return count | |||
def read_input(): | |||
n = int(input()) | |||
v = list(map(int, input().split())) | |||
A, B = map(int, input().split()) | |||
if not validate_input(n, v, A, B): | |||
exit() | |||
return n, v, A, B | |||
if __name__ == '__main__': | |||
n, v, A, B = read_input() | |||
print(numar_perechi(n, v, A, B)) | |||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 17 aprilie 2023 19:35
Sursa: 4265 - perechiAb
Cerinţa
Se dă un șir v1, v2, …, vn de numere naturale nenule și de asemenea se dau două numere naturale nenule A și B. Să se determine numărul perechilor (vi , vj) cu i < j și A ≤ vi + vj ≤ B.
Date de intrare
Programul citește de la tastatură numărul n, apoi șirul de n numere naturale, separate prin spații, iar la final se citesc numerele naturale nenule A și B.
Date de ieșire
Programul va afișa pe ecran numărul de perechi care îndeplinesc condițiile cerute.
Restricţii şi precizări
- 3 ≤ n ≤ 160.000
- 1 ≤ A ≤ B ≤ 2.000.000.000
- 1 ≤ vi ≤ 1.000.000.000
Exemplu
- Intrare
- 5
- 1 2 3 4 5
- 7 10
- Ieșire
- 4
Rezolvare
Rezolvare ver. 1
# 4265 - perechiAB
n = int(input())
v = list(map(int, input().split()))
A, B = map(int, input().split())
count = 0
for i in range(n-1):
for j in range(i+1, n):
if A <= v[i] + v[j] <= B:
count += 1
print(count)
=== Rezolvare ver 1.1 ===
def validate_input(n, v, A, B):
if n < 3 or n > 160000:
print("n nu respecta restricțiile impuse")
return False
for i in range(n):
if v[i] < 1 or v[i] > 1000000000:
print("valorile din v nu respecta restricțiile impuse")
return False
if A < 1 or B > 2000000000 or A > B:
print("A si B nu respecta restricțiile impuse")
return False
return True
def numar_perechi(n, v, A, B):
count = 0
for i in range(n-1):
for j in range(i+1, n):
if A <= v[i] + v[j] <= B:
count += 1
return count
def read_input():
n = int(input())
v = list(map(int, input().split()))
A, B = map(int, input().split())
if not validate_input(n, v, A, B):
exit()
return n, v, A, B
if __name__ == '__main__':
n, v, A, B = read_input()
print(numar_perechi(n, v, A, B))