Comprobar si es posible barajar una array con movimientos adyacentes

Dada una array N x M que representa el número de filas y el número de columnas respectivamente. Cada celda de una array está ocupada exactamente por un estudiante. La tarea es determinar si podemos barajar a cada alumno de tal manera que cada alumno ocupe una celda adyacente a la celda original de ese alumno, es decir, inmediatamente a la izquierda, derecha, arriba o abajo de esa celda y después de barajar cada celda. debe ocupar exactamente un estudiante.
Ejemplos: 
 

Entrada: N = 3, M = 3 
Salida: Barajar no es posible
Entrada: N = 4, M = 4 
Salida: Barajar es posible
Una forma posible de barajar al estudiante es como se muestra a continuación: 
 

 

Enfoque: verifique si el número de filas o el número de columnas es par, entonces es posible mezclar, de lo contrario no es posible mezclar.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ implementation of above approach
#include <iostream>
using namespace std;
 
// Function that will check whether
// Shuffling is possible or not
void Shuffling(int N, int M)
{
    if (N % 2 == 0 || M % 2 == 0)
        cout << "Shuffling is possible";
    else
        cout << "Shuffling not possible";
}
 
// Driver code
int main()
{
    int N = 4, M = 5;
 
    // Calling function.
    Shuffling(N, M);
    return 0;
}

Python3

# Python3 implementation of above approach
 
# Function that will check whether
# Shuffling is possible or not
def Shuffling(N, M) :
     
    if (N % 2 == 0 or M % 2 == 0) :
        print("Shuffling is possible");
    else :
        print("Shuffling not possible");
 
# Driver Code
if __name__ == "__main__" :
 
    # Driver code
    N = 4;
    M = 5;
 
    # Calling function.
    Shuffling(N, M);
     
# This code is contributed by Ryuga

C#

// C# implementation of above approach
using System;
 
class GFG
{
     
// Function that will check whether
// Shuffling is possible or not
static void Shuffling(int N, int M)
{
    if (N % 2 == 0 || M % 2 == 0)
        Console.Write("Shuffling is possible");
    else
        Console.Write("Shuffling not possible");
}
 
    // Driver code
    public static void Main ()
    {
        int N = 4, M = 5;
 
        // Calling function.
        Shuffling(N, M);
    }
}
 
// This code is contributed by Ita_c.

PHP

<?php
// PHP implementation of above approach
 
// Function that will check whether
// Shuffling is possible or not
function Shuffling($N, $M)
{
    if ($N % 2 == 0 || $M % 2 == 0)
        echo "Shuffling is possible";
    else
        echo "Shuffling not possible";
}
 
// Driver code
$N = 4;
$M = 5;
 
// Calling function.
Shuffling($N, $M);
 
// This code is contributed by
// Shivi_Aggarwal
?>

Javascript

<script>
// Javascript implementation of above approach
 
// Function that will check whether
// Shuffling is possible or not
function Shuffling(N, M)
{
    if (N % 2 == 0 || M % 2 == 0)
        document.write( "Shuffling is possible");
    else
       document.write("Shuffling not possible");
}
 
// Driver code
var N = 4, M = 5;
 
// Calling function.
Shuffling(N, M);
 
// This code is contributed by rrrtnx.
</script>
Producción: 

Shuffling is possible

 

Publicación traducida automáticamente

Artículo escrito por Naman_Garg 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 *