Problema
Cuenta los pares de posiciones diferentes i < j en numbers donde numbers[i] + numbers[j] es igual a target. Usa dos bucles anidados.
Implementa count_pairs_with_sum(numbers, target).
Entrada
numbers: La lista de enteros. target: La suma que se busca.
Salida
Devuelve el número de pares.
Restricciones
0 ≤ longitud de numbers ≤ 500; -10,000 ≤ cada número, target ≤ 10,000
Ejemplos
Entrada:
target = 6
numbers = [1, 5, 3, 3, 4]
Salida esperada:
expected = 2
Entrada:
long long target = 6;
std::vector<long long> numbers = {1, 5, 3, 3, 4};
Salida esperada:
long long expected = 2;
Entrada:
long target = 6;
long[] numbers = new long[] {1, 5, 3, 3, 4};
Salida esperada:
long expected = 2;
Explicación
1 + 5, 3 + 3 (los dos 3 en posiciones diferentes) suman 6: 2 pares.
Entrada:
target = 4
numbers = [2, 2, 2]
Salida esperada:
expected = 3
Entrada:
long long target = 4;
std::vector<long long> numbers = {2, 2, 2};
Salida esperada:
long long expected = 3;
Entrada:
long target = 4;
long[] numbers = new long[] {2, 2, 2};
Salida esperada:
long expected = 3;
Explicación
Cada par de los tres 2 suma 4: posiciones (0,1), (0,2), (1,2) = 3 pares.
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
Comprueba cada pareja anterior-posterior y mira si su suma coincide con el objetivo.
Pista 2
Un doble bucle sencillo basta porque el tamaño de entrada es pequeño.
Pista 3
Ten cuidado de contar cada pareja una sola vez, usando posiciones con i menor que j.
Complejidad esperada
tiempo O(n^2), espacio extra O(1)
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.