12. Dibujo

  1. Dibujo
    Descripción del problema
    Dibujar un rectángulo de (x1, y1) a (x2, y2) en una hoja de papel que define un sistema de coordenadas rectangular se refiere al área donde la abscisa varía de x1 a x2 y la
    ordenada varía de y1 a y2 Pintar color.
    La siguiente figura muestra un ejemplo de cómo dibujar dos rectángulos. El primer rectángulo es (1,1) a (4, 4), representado en verde y morado. El segundo
    rectángulo es (2, 3) a (6, 5) y está representado por azul y violeta. En la figura se pinta un total de 15 unidades de área, de las cuales la
    parte violeta se pinta dos veces, pero solo una vez al calcular el área. En el proceso de coloración real, todos los rectángulos se pintan en un
    color uniforme.Los diferentes colores que se muestran en la figura son solo para conveniencia de la ilustración.
    Dados todos los rectángulos que se van a dibujar, ¿cuántas unidades del área están coloreadas?
    La primera línea de entrada contiene un número entero n, que representa el número de rectángulos que se dibujarán.
    Inserte la descripción de la imagen aquí

Las siguientes n filas, cada una con 4 enteros no negativos, representan la abscisa y ordenada de la esquina inferior izquierda del rectángulo que se dibujará, y
la abscisa y ordenada de la esquina superior derecha del rectángulo que se dibujará .
Formato de
salida Genera un número entero, que indica cuántas unidades del área están pintadas.
Entrada de muestra
2
1 1 4 4
2 3 6 5
Salida de muestra
15
Escala y convención de casos de uso de evaluación
1 <= n <= 100, 0 <= abscisa, ordenada <= 100.

#include<bits/stdc++.h>

using namespace std;

int main()
{
    
    
    int n, t = 0;
    int a[111][111];
    memset(a, 0, sizeof(a));
    cin>>n;
    int x1, x2, y1, y2;
    for(int i = 0; i < n; i++)
    {
    
    
        cin>>x1>>y1>>x2>>y2;
        for (int i = x1 + 1; i <= x2; i++)
            for (int j = y1 + 1; j <= y2; j++)
            {
    
    
                if(a[i][j])
                    continue;
                else
                {
    
    
                    a[i][j] = 1;
                    t++;
                }
            }

    }
    cout<<t;
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/KO812605128/article/details/113769330
Recomendado
Clasificación