Dada una array circular arr[] de tamaño N, la tarea es verificar si es posible igualar todos los elementos de la array circular aumentando los pares de elementos adyacentes en 1 .
Ejemplos:
Entrada: N = 4, arr[] = {2, 1, 3, 4}
Salida: Sí
Explicación:
Paso 1: { 2, 1 , 3, 4} -> { 3, 2 , 3, 4}
Paso 2: { 3, 2 , 3, 4} -> { 4, 3 , 3, 4}
Paso 3: {4, 3, 3 , 4} -> {4, 4, 4 , 4}
Entrada: N = 6, arr []={1, 5, 9, 6, 1, 1}
Salida: No
Planteamiento: Para resolver el problema, se puede observar que los dos índices formados por elementos a incrementar, uno es par y el otro es impar . Por lo tanto, si aumentamos el valor de un elemento indexado par, en consecuencia también aumentará un elemento indexado impar. Por lo tanto, todos los elementos de la array pueden hacerse iguales solo si la suma de los elementos indexados impares y los elementos indexados pares son iguales. Siga los pasos a continuación para resolver el problema:
- Calcule la suma de todos los números pares indexados, es decir, sumEven .
- Calcula la suma de todos los números indexados impares, es decir sumOdd .
- Si se encuentra que sumEven y sumOdd son iguales, entonces imprima » Sí «, de lo contrario, » No «.
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 check if all array // elements can be made equal bool checkEquall(int arr[], int N) { // Stores the sum of even and // odd array elements int sumEven = 0, sumOdd = 0; for (int i = 0; i < N; i++) { // If index is odd if (i & 1) sumOdd += arr[i]; else sumEven += arr[i]; } if (sumEven == sumOdd) return true; else return false; } // Driver Code int main() { int arr[] = { 2, 7, 3, 5, 7 }; int N = sizeof(arr) / sizeof(arr[0]); if (checkEquall(arr, N)) cout << "YES" << endl; else cout << "NO" << endl; return 0; }
Java
// Java program to implement // the above approach import java.util.*; class GFG{ // Function to check if all array // elements can be made equal static boolean checkEquall(int arr[], int N) { // Stores the sum of even and // odd array elements int sumEven = 0, sumOdd = 0; for(int i = 0; i < N; i++) { // If index is odd if (i % 2 == 1) sumOdd += arr[i]; else sumEven += arr[i]; } if (sumEven == sumOdd) return true; else return false; } // Driver Code public static void main(String[] args) { int arr[] = { 2, 7, 3, 5, 7 }; int N = arr.length; if (checkEquall(arr, N)) System.out.print("YES" + "\n"); else System.out.print("NO" + "\n"); } } // This code is contributed by PrinciRaj1992
Python3
# Python3 program to implement # the above approach # Function to check if all array # elements can be made equal def checkEquall(arr, N): # Stores the sum of even and # odd array elements sumEven, sumOdd = 0, 0 for i in range(N): # If index is odd if (i & 1): sumOdd += arr[i] else: sumEven += arr[i] if (sumEven == sumOdd): return True else: return False # Driver Code if __name__ == "__main__": arr = [ 2, 7, 3, 5, 7 ] N = len(arr) if (checkEquall(arr, N)): print("YES") else: print("NO") # This code is contributed by chitranayal
C#
// C# program to implement // the above approach using System; class GFG{ // Function to check if all array // elements can be made equal static bool checkEquall(int []arr, int N) { // Stores the sum of even and // odd array elements int sumEven = 0, sumOdd = 0; for(int i = 0; i < N; i++) { // If index is odd if (i % 2 == 1) sumOdd += arr[i]; else sumEven += arr[i]; } if (sumEven == sumOdd) return true; else return false; } // Driver Code public static void Main(String[] args) { int []arr = { 2, 7, 3, 5, 7 }; int N = arr.Length; if (checkEquall(arr, N)) Console.Write("YES" + "\n"); else Console.Write("NO" + "\n"); } } // This code is contributed by PrinciRaj1992
Javascript
<script> // JavaScript program to implement // the above approach // Function to check if all array // elements can be made equal function checkEquall(arr, N) { // Stores the sum of even and // odd array elements let sumEven = 0, sumOdd = 0; for(let i = 0; i < N; i++) { // If index is odd if (i % 2 == 1) sumOdd += arr[i]; else sumEven += arr[i]; } if (sumEven == sumOdd) return true; else return false; } // Driver Code let arr = [ 2, 7, 3, 5, 7 ]; let N = arr.length; if (checkEquall(arr, N)) document.write("YES" ); else document.write("NO"); </script>
YES
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por shashanktrivedi02 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA