Modifique una array binaria a Bitwise AND de todos los elementos como 1

Dada una array, a[] consta solo de 0 y 1. La tarea es verificar si es posible transformar la array de modo que el valor AND entre cada par de índices sea 1. La única operación permitida es: 

  • Tome dos índices i y j y reemplace a[i] y a[j] con a[i] | a[j] donde ‘|’ significa operación OR bit a bit.

Si es posible, la salida es «SÍ», de lo contrario, la salida es «NO».

Ejemplos:  

Input:  arr[] = {0, 1, 0, 0, 1}
Output: Yes
Choose these pair of indices (0, 1), (1, 2), (3, 4).

Input: arr[] = {0, 0, 0}
Output: No 

Enfoque: La observación principal es que, si el arreglo consta de al menos un 1, entonces la respuesta será SÍ, de lo contrario, la salida será NO porque OR con 1 nos dará 1, ya que el arreglo consta solo de 0 y 1. 
Si hay al menos un 1, luego elegiremos todos los índices con un valor 0 y los reemplazaremos con un valor OR con el índice que tiene 1 y el valor OR siempre será 1. Después de todas las operaciones, la array consistirá en solo 1 
y el valor AND entre cualquier par de índices será 1 como (1 AND 1)=1.
A continuación se muestra la implementación del enfoque anterior:  

C++

// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if it is possible or not
bool check(int a[], int n)
{
    for (int i = 0; i < n; i++)
        if (a[i])
            return true;
 
    return false;
}
 
// Driver code
int main()
{
 
    int a[] = { 0, 1, 0, 1 };
    int n = sizeof(a) / sizeof(a[0]);
 
    check(a, n) ? cout << "YES\n"
                : cout << "NO\n";
 
    return 0;
}

Java

// Java implementation of the above approach
class GFG
{
     
    // Function to check if it is possible or not
    static boolean check(int a[], int n)
    {
        for (int i = 0; i < n; i++)
            if (a[i] == 1)
                return true;
     
        return false;
    }
 
    // Driver code
    public static void main (String[] args)
    {
        int a[] = { 0, 1, 0, 1 };
        int n = a.length;
     
        if(check(a, n) == true )
            System.out.println("YES\n") ;
        else
            System.out.println("NO\n");
    }
}
 
// This code is contributed by Ryuga

Python3

# Python 3 implementation of the
# above approach
 
# Function to check if it is
# possible or not
def check(a, n):
    for i in range(n):
        if (a[i]):
            return True
 
    return False
 
# Driver code
if __name__ == '__main__':
    a = [0, 1, 0, 1]
    n = len(a)
     
    if(check(a, n)):
        print("YES")
    else:
        print("NO")
         
# This code is contributed by
# Surendra_Gangwar

C#

// C# implementation of the above approach
using System;
 
class GFG
{
     
    // Function to check if it is possible or not
    static bool check(int []a, int n)
    {
        for (int i = 0; i < n; i++)
            if (a[i] == 1)
                return true;
     
        return false;
    }
 
    // Driver code
    public static void Main ()
    {
        int []a = { 0, 1, 0, 1 };
        int n = a.Length;
     
        if(check(a, n) == true )
            Console.Write("YES\n") ;
        else
            Console.Write("NO\n");
    }
}
 
// This code is contributed
// by Akanksha Rai

PHP

<?php
// PHP implementation of the
// above approach
 
// Function to check if it is
// possible or not
function check($a, $n)
{
    for ($i = 0; $i < $n; $i++)
        if ($a[$i])
            return true;
 
    return false;
}
 
// Driver code
$a = array(0, 1, 0, 1);
$n = sizeof($a);
 
if(check($a, $n))
    echo "YES\n";
else
    echo "NO\n";
 
// This code is contributed
// by Akanksha Rai
?>

Javascript

<script>
 
// Javascript implementation of the above approach
 
// Function to check if it is possible or not
function check(a, n)
{
    for (var i = 0; i < n; i++)
        if (a[i])
            return true;
 
    return false;
}
 
// Driver code
var a = [0, 1, 0, 1 ];
var n = a.length;
check(a, n) ? document.write( "YES")
            : document.write( "NO\n");
 
 
</script>
Producción: 

YES

 

Publicación traducida automáticamente

Artículo escrito por souradeep y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *