Dadas las coordenadas inferior izquierda y superior derecha (x1, y1) y (x2, y2) de un cuadrado, la tarea es contar el número de coordenadas integrales que se encuentran estrictamente dentro del cuadrado.
Ejemplos:
Entrada: x1 = 1, y1 = 1, x2 = 5, x3 = 5
Salida: 9
Explicación:
A continuación se muestra el cuadrado para las coordenadas dadas:
Entrada: x1 = 1, y1 = 1, x2 = 4, x3 = 4
Salida: 4
Enfoque: La diferencia entre las ordenadas x e y de las coordenadas inferior y superior derecha de los cuadrados dados da el número de puntos integrales de las ordenadas x y las ordenadas y entre los lados opuestos del cuadrado, respectivamente. El número total de puntos que se encuentran estrictamente dentro del cuadrado está dado por:
cuenta = (x2 – x1 – 1) * (y2 – y1 – 1)
Por ejemplo:
En la figura anterior:
1. El número total de puntos integrales dentro de la base del cuadrado es (x2 – x1 – 1) .
2. El número total de puntos integrales dentro de la altura del cuadrado es (y2 – y1 – 1) .
Estos (x2 – x1 – 1) puntos integrales paralelos a la base del cuadrado se repiten (y2 – y1 – 1) número de veces. Por lo tanto, el número total de puntos integrales viene dado por (x2 – x1 – 1)*(y2 – y1 – 1) .
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 calculate the integral // points inside a square void countIntgralPoints(int x1, int y1, int x2, int y2) { cout << (y2 - y1 - 1) * (x2 - x1 - 1); } // Driver Code int main() { int x1 = 1, y1 = 1; int x2 = 4, y2 = 4; countIntgralPoints(x1, y1, x2, y2); return 0; }
Java
// Java program for the above approach class GFG { // Function to calculate the integral // points inside a square static void countIntgralPoints(int x1, int y1, int x2, int y2) { System.out.println((y2 - y1 - 1) * (x2 - x1 - 1)); } // Driver Code public static void main(String args[]) { int x1 = 1, y1 = 1; int x2 = 4, y2 = 4; countIntgralPoints(x1, y1, x2, y2); } } // This code is contributed by rutvik_56
Python3
# Python3 program for the above approach # Function to calculate the integral # points inside a square def countIntgralPoints(x1, y1, x2, y2): print((y2 - y1 - 1) * (x2 - x1 - 1)) # Driver Code if __name__ == '__main__': x1 = 1 y1 = 1 x2 = 4 y2 = 4 countIntgralPoints(x1, y1, x2, y2) # This code is contributed by Samarth
C#
// C# program for the above approach using System; class GFG{ // Function to calculate the integral // points inside a square static void countIntgralPoints(int x1, int y1, int x2, int y2) { Console.WriteLine((y2 - y1 - 1) * (x2 - x1 - 1)); } // Driver code static void Main() { int x1 = 1, y1 = 1; int x2 = 4, y2 = 4; countIntgralPoints(x1, y1, x2, y2); } } // This code is contributed by divyeshrabadiya07
Javascript
<script> // Javascript program for the above approach // Function to calculate the integral // points inside a square function countIntgralPoints(x1, y1, x2, y2) { document.write( (y2 - y1 - 1) * (x2 - x1 - 1)); } // Driver Code var x1 = 1, y1 = 1; var x2 = 4, y2 = 4; countIntgralPoints(x1, y1, x2, y2); </script>
4
Complejidad de tiempo: O (1), ya que no estamos usando ningún bucle.
Espacio auxiliar: O(1), ya que no estamos utilizando ningún espacio adicional.