BOJ 10163 - 색종이

색종이 문제

[BOJ] 10163 - 색종이

평면에 1번 ~ N번까지의 색종이를 차례로 놓은 후 

마지막에 각 색종이가 보이는 면적을 구하는 문제이다.

1번부터 N번까지 색종이를 차례로 놓기 때문에

평면의 정보를 저장하는 이차원 배열을 선언하여 색종이를 놓을 때마다 배열의 정보를 업데이트하여

각 색종이가 차치하는 부분이 얼만큼인지 세어주면 색종이가 보이는 면적을 구할 수 있다.

#include <bits/stdc++.h>
using namespace std; 
int n; int arr[101][101]; 
int cnt[101]; 
int main() 
{
    scanf("%d", &n); 
    for(int i=1;i<=n;i++) 
    { 
        int a, b, c, d; 
        scanf("%d %d %d %d", &a, &b, &c, &d); 
        for(int p=a;p<a+c;p++) 
        {
            for(int q=b;q<b+d;q++) 
            {
                arr[p][q] = i; 
            }
        }
    } 
    for(int i=0;i<101;i++) 
    { 
        for(int j=0;j<101;j++) 
        {
            cnt[arr[i][j]]++; 
        } 
    } 
    for(int i=1;i<=n;i++) 
    { 
        printf("%d\n", cnt[i]); 
    } 
}
Written on June 3, 2019