Dados dos enteros M y N , la tarea es encontrar el número mínimo de mosaicos de tamaño 2 * 1 que se pueden colocar en una cuadrícula M * N tal que se cumplan las siguientes condiciones:
- Cada ficha debe cubrir por completo 2 casillas del tablero.
- Ningún par de fichas puede superponerse.
- Cada ficha debe colocarse completamente dentro del tablero. Está permitido tocar los bordes del tablero.
Si no es posible cubrir todo el tablero, imprima -1
Entrada: N = 2, M = 4
Salida: 4
Explicación: 4 mosaicos de dimensión 2 * 1. Coloque cada mosaico en una columna.Entrada: N = 3, M = 3
Salida: -1
Enfoque: siga los pasos a continuación para resolver el problema
- Si N es par, se pueden colocar (N/2) * M fichas para cubrir todo el tablero.
- Si N es impar, mosaicos de 2 * 1 mosaicos, ya que la longitud es impar, lo que no se puede expresar como un múltiplo de 2
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 count tiles of dimensions // 2 x 1 that can be placed in a grid of // dimensions M * N as per given conditions int numberOfTiles(int N, int M) { if (N % 2 == 1) { return -1; } // Number of tiles required return (N * 1LL * M) / 2; } // Driver Code int main() { int N = 2, M = 4; cout << numberOfTiles(N, M); return 0; }
Java
// Java Program to implement // the above approach import java.io.*; class GFG { // Function to count tiles of dimensions // 2 x 1 that can be placed in a grid of // dimensions M * N as per given conditions static int numberOfTiles(int n, int m) { if (n % 2 == 1) { return -1; } // Number of tiles required return (m * n) / 2; } // Driver Code public static void main(String[] args) { int n = 2, m = 4; System.out.println( numberOfTiles(n, m)); } }
Python
# Python Program to implement # the above approach # Function to count tiles of dimensions # 2 x 1 that can be placed in a grid of # dimensions M * N as per given conditions def numberOfTiles(N, M): if (N % 2 == 1): return -1 # Number of tiles required return (N * M) // 2 # Driver Code N = 2 M = 4 print(numberOfTiles(N, M)) # This code is contributed by shubhamsingh10
C#
// C# Program to implement // the above approach using System; public class GFG { // Function to tiles of size 2 x 1 // find the number of tiles that can // be placed as per the given conditions static int numberOfTiles(int n, int m) { if (n % 2 == 1) { return -1; } // Number of tiles required return (m * n) / 2; } // Driver Code static public void Main() { int n = 2, m = 4; Console.WriteLine( numberOfTiles(n, m)); } }
Javascript
<script> // Javascript Program to implement // the above approach // Function to count tiles of dimensions // 2 x 1 that can be placed in a grid of // dimensions M * N as per given conditions function numberOfTiles(n, m) { if (n % 2 == 1) { return -1; } // Number of tiles required return (m * n) / 2; } // Driver Code var n = 2, m = 4; document.write(numberOfTiles(n, m)); // This code is contributed by kirti </script>
Producción:
4
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por dharanendralv23 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA