Dadas dos arrays A[] y B[] de tamaño N y M respectivamente, la tarea es encontrar la suma de Bitwise AND de todos los pares desordenados posibles (A[i], B[j]) de las dos arrays.
Ejemplos:
Entrada: A[] = {1, 2} , B[] = {3, 4}
Salida: 3
Explicación:
Y bit a bit de todos los pares posibles son
1 y 3 = 1
1 y 4 = 0
2 y 3 = 2
2 y 4 = 0
Por lo tanto, la suma de AND bit a bit de todos los pares posibles es = (1 + 0 + 2 + 0) = 3Entrada: A[] = {4, 6, 0, 0, 3, 3}, B[] = {0, 5, 6, 5, 0, 3} Salida
: 42
Enfoque: para resolver el problema, la idea es atravesar ambos arreglos y generar todos los pares posibles a partir de los dos arreglos dados y seguir agregando sus respectivos AND bit a bit. Finalmente, imprima la suma de Bitwise AND de todos los pares posibles (A[i], B[j]) obtenidos de las dos arrays dadas.
Siga los pasos a continuación para resolver el problema:
- Inicialice una variable, diga pairsAndSum para almacenar la suma de Bitwise AND de todos los pares posibles.
- Recorre ambos arreglos y genera todos los pares posibles a partir de los dos arreglos dados.
- Finalmente, calcule la suma de Bitwise AND de todos los pares posibles de ambas arrays e imprima la suma.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to implement // the above approach #include <bits/stdc++.h> using namespace std; // Function to find the sum of // AND of all possible pair int sumOfAnd(int A[], int B[], int N, int M) { // Stores sum of bitwise AND // of all possible pair int pairsAndSum = 0; // Traverse the array A[] for (int i = 0; i < N; i++) { // Traverse the array B[] for (int j = 0; j < M; j++) { // Update pairsAndSum pairsAndSum += (A[i] & B[j]); } } return pairsAndSum; } // Driver Code int main() { int A[] = { 4, 6, 0, 0, 3, 3 }; int B[] = { 0, 5, 6, 5, 0, 3 }; int N = sizeof(A) / sizeof(A[0]); int M = sizeof(B) / sizeof(B[0]); cout << sumOfAnd(A, B, N, M); return 0; }
Java
// Java Program to implement // the above approach import java.util.*; class GFG{ // Function to find the sum of // AND of all possible pair static int sumOfAnd(int A[], int B[], int N, int M) { // Stores sum of bitwise AND // of all possible pair int pairsAndSum = 0; // Traverse the array A[] for (int i = 0; i < N; i++) { // Traverse the array B[] for (int j = 0; j < M; j++) { // Update pairsAndSum pairsAndSum += (A[i] & B[j]); } } return pairsAndSum; } // Driver Code public static void main(String[] args) { int A[] = {4, 6, 0, 0, 3, 3}; int B[] = {0, 5, 6, 5, 0, 3}; int N = A.length; int M = B.length; System.out.print(sumOfAnd(A, B, N, M)); } } // This code is contributed by gauravrajput1
Python3
# Python3 program to implement # the above approach # Function to find the sum of # AND of all possible pair def sumOfAnd(A, B, N, M): # Stores sum of bitwise AND # of all possible pair pairsAndSum = 0 # Traverse the array A for i in range(N): # Traverse the array B for j in range(M): # Update pairsAndSum pairsAndSum += (A[i] & B[j]) return pairsAndSum # Driver Code if __name__ == '__main__': A = [ 4, 6, 0, 0, 3, 3 ] B = [ 0, 5, 6, 5, 0, 3 ] N = len(A) M = len(B) print(sumOfAnd(A, B, N, M)) # This code is contributed by Amit Katiyar
C#
// C# Program to implement // the above approach using System; class GFG{ // Function to find the sum of // AND of all possible pair static int sumOfAnd(int []A, int []B, int N, int M) { // Stores sum of bitwise AND // of all possible pair int pairsAndSum = 0; // Traverse the array []A for (int i = 0; i < N; i++) { // Traverse the array []B for (int j = 0; j < M; j++) { // Update pairsAndSum pairsAndSum += (A[i] & B[j]); } } return pairsAndSum; } // Driver Code public static void Main(String[] args) { int []A = {4, 6, 0, 0, 3, 3}; int []B = {0, 5, 6, 5, 0, 3}; int N = A.Length; int M = B.Length; Console.Write(sumOfAnd(A, B, N, M)); } } // This code is contributed by Rajput-Ji
Javascript
<script> // Javascript Program to implement // the above approach // Function to find the sum of // AND of all possible pair function sumOfAnd(A, B, N, M) { // Stores sum of bitwise AND // of all possible pair var pairsAndSum = 0; // Traverse the array A[] for (var i = 0; i < N; i++) { // Traverse the array B[] for (var j = 0; j < M; j++) { // Update pairsAndSum pairsAndSum += (A[i] & B[j]); } } return pairsAndSum; } // Driver Code var A = [ 4, 6, 0, 0, 3, 3 ]; var B = [ 0, 5, 6, 5, 0, 3 ]; var N = A.length; var M = B.length; document.write(sumOfAnd(A, B, N, M)); </script>
42
Complejidad de Tiempo: O(N 2 )
Espacio Auxiliar: O(1)