Dada una array arr[] que consta de N enteros y un entero K, la tarea es verificar si la suma de la array se puede reducir a 0 restando K elementos de la array cualquier cantidad de veces.
Ejemplos:
Entrada: arr[ ]= {-3, 2, -1, 5, 1}, K=2
Salida: “Sí”
Explicación:
La suma de la array es 4. Por lo tanto, disminuir dos elementos en cualquier índice por K( = 2 ), hace que la suma de la array sea 0.
Entrada: arr[ ]= {1, -6, 2, 2}, K=1
Salida: “No”
Enfoque: siga los pasos a continuación para resolver el problema:
- Recorre la array y calcula la suma de la array dada .
- Según el valor de la suma , se dan los siguientes casos:
- Si suma = 0: No se requiere ninguna operación. Por lo tanto, la respuesta es “Sí”.
- Si sum > 0: Sum se puede reducir a 0 solo si sum es un múltiplo de K . Si la suma no es un múltiplo de K , escriba «No». De lo contrario, escriba «Sí» .
- Si la suma < 0: simplemente escriba «No» .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if the // sum can be made 0 or not int sumzero(int arr[], int N, int K) { // Stores sum of array elements int sum = 0; // Traverse the array for (int i = 0; i < N; i++) { sum += arr[i]; } if (sum == 0) cout << "Yes"; else if (sum > 0) { if (sum % K == 0) cout << "Yes"; else cout << "No"; } else cout << "No"; return 0; } // Driver Code int main() { int K, N; // Given array arr[] int arr1[] = { 1, -6, 2, 2 }; K = 1; N = sizeof(arr1) / sizeof(arr1[0]); sumzero(arr1, N, K); return 0; }
Java
// Java program for the above approach import java.util.*; class GFG{ // Function to check if the // sum can be made 0 or not static int sumzero(int arr[], int N, int K) { // Stores sum of array elements int sum = 0; // Traverse the array for (int i = 0; i < N; i++) { sum += arr[i]; } if (sum == 0) System.out.print("Yes"); else if (sum > 0) { if (sum % K == 0) System.out.print("Yes"); else System.out.print("No"); } else System.out.print("No"); return 0; } // Driver Code public static void main(String[] args) { int K, N; // Given array arr[] int arr1[] = { 1, -6, 2, 2 }; K = 1; N = arr1.length; sumzero(arr1, N, K); } } // This code is contributed by 29AjayKumar
Python3
# Python3 program for the above approach # Function to check if the # sum can be made 0 or not def sumzero(arr, N, K) : # Stores sum of array elements sum = 0; # Traverse the array for i in range(N) : sum += arr[i]; if (sum == 0) : print("Yes"); elif (sum > 0) : if (sum % K == 0) : print("Yes"); else : print("No"); else : print("No"); # Driver Code if __name__ == "__main__" : # Given array arr[] arr1 = [ 1, -6, 2, 2 ]; K = 1; N = len(arr1); sumzero(arr1, N, K); # This code is contributed by AnkThon
C#
// C# program for the above approach using System; class GFG{ // Function to check if the // sum can be made 0 or not static int sumzero(int []arr, int N, int K) { // Stores sum of array elements int sum = 0; // Traverse the array for (int i = 0; i < N; i++) { sum += arr[i]; } if (sum == 0) Console.Write("Yes"); else if (sum > 0) { if (sum % K == 0) Console.Write("Yes"); else Console.Write("No"); } else Console.Write("No"); return 0; } // Driver Code public static void Main(String[] args) { int K, N; // Given array []arr int []arr1 = { 1, -6, 2, 2 }; K = 1; N = arr1.Length; sumzero(arr1, N, K); } } // This code is contributed by 29AjayKumar
Javascript
<script> // JavaScript program for the above approach // Function to check if the // sum can be made 0 or not function sumzero(arr , N , K) { // Stores sum of array elements var sum = 0; // Traverse the array for (i = 0; i < N; i++) { sum += arr[i]; } if (sum == 0) document.write("Yes"); else if (sum > 0) { if (sum % K == 0) document.write("Yes"); else document.write("No"); } else document.write("No"); return 0; } // Driver Code var K, N; // Given array arr var arr1 = [ 1, -6, 2, 2 ]; K = 1; N = arr1.length; sumzero(arr1, N, K); // This code contributed by gauravrajput1 </script>
No
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por adarsh_sinhg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA